#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int h[130];
int s[130];
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
char str[1010],ans[1010];
gets(str);
gets(ans);
int len = strlen(str);
int len1=strlen(ans);
int num=0;
for(int i=0;i<len;i++){
h[str[i]]++;
}
for(int i=0;i<len1;i++)
s[ans[i]]++;
for(int i=0;i<len1;i++){
if(h[ans[i]]>=s[ans[i]]) num++;
else if(h[ans[i]]<s[ans[i]] &&h[ans[i]]){
num++;
h[ans[i]]--;
}
}
if(num==len1){
printf("Yes %d",len-len1);
}else printf("No %d",len1-num);
return 0;
}
关键:细节处理,这里注意判断时候要准确,比如这里h<s元素不代表num不可以自增
【PAT】1092. To Buy or Not to Buy
最新推荐文章于 2023-07-18 16:55:33 发布