题目链接: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,不知道为什么,等以后想明白再添上吧!