0
点赞
收藏
分享

微信扫一扫

PAT 1039 到底买不买 (20 分)

认真的老去 2022-01-04 阅读 32
c++算法
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s1,s2;
    cin>>s1>>s2;
    int result=s1.length();                 //记录s1匹配后剩下的珠子
    for(int i=0;i<s1.length() ;i++){
        if(s2.find(s1[i])!=string::npos){      //s2中有s1的这个颜色的珠子
        result--;                               //s1中的这个珠子匹配掉
        s2.erase(s2.begin()+s2.find(s1[i]));    //s2删除掉与s1相同的珠子,删除s2.begin+s2.find迭代器指向的内容
        }   
    }
    if(s2.length()==0){                    //如果s2全都在遍历s1过程中消掉,则s1完全包含s2
    printf("Yes %d",result);               //输出s1匹配后剩余数result
    }   
    else printf("No %d",s2.length());     //没有消掉,s2剩下的就是缺的珠子数
    return 0;
}
举报

相关推荐

0 条评论