PAT B1039/A1092 到底买不买(20point(s))

题目链接
AC代码

#include<cstdio>
#include<cstring>
int main(){
    char sell[1010],buy[1010];
    int record[128]={0};//record[i]表示i所代表的珠子的个数
    scanf("%s%s",sell,buy);//分别输入摊贩卖的珠串和小红想买的珠串
    int len=strlen(buy);//len为小红想买的珠串的珠子数
    int need=len;//need为尚缺的珠子数
    for(int i=0;sell[i]!='\0';i++){//将摊贩贩卖的珠串的不同珠子的个数统计起来
        record[sell[i]-'0']++;
    }
    for(int i=0;i<len;i++){
        if(record[buy[i]-'0']>0){//如果小红想要的珠子摊贩还有剩余
            record[buy[i]-'0']--;//摊贩珠子数减一
            need--;//缺少数减一
        }
    }
    if(need==0) printf("Yes %d",strlen(sell)-len);//如果不缺,多余的珠子数就是摊贩的珠子数减去小红珠串的珠子数
    else printf("No %d",need);//如果need>0则输出缺少数
    return 0;
}
发布了81 篇原创文章 · 获赞 0 · 访问量 676

猜你喜欢

转载自blog.csdn.net/weixin_44546393/article/details/105342983