题目链接:https://www.patest.cn/contests/pat-b-practise/1039
解题思路:自己刚开始想的是用两个字符串来做,搜别人题解的时候发现别人一种很好的解题思路,是用string做的,感觉做的很巧妙
具体的代码如下:
#include<bits/stdc++.h>using namespace std;int main() {string s1,s2;cin>>s1>>s2;int len1,len2;len1=s1.length();len2=s2.length();int sum=0;bool flag=1;for(int i=0;i<len2;i++){int place=s1.find(s2[i],0);if(place!=-1){s1.erase(s1.begin()+place);}else{flag=0;sum++;}} if(!flag) {cout<<"No ";cout<<sum;}else{cout<<"Yes ";cout<<len1-len2;}return 0; }
if(!flag) printf("NO %d",sum);else printf("Yes %d",len1-len2);
最后的代码输出用下面的代码输出答案就是报只是部分正确,而用c++的cout输出就是AC,不知道为什么,等以后想明白再添上吧!