PAT 1039. 到底买不买(20)

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

原文地址:https://www.cnblogs.com/gaoss/p/5372774.html