代码
#include <iostream>
using namespace std;
const int MAX = 128;
int main() {
string s1, s2;
getline(cin, s1);
getline(cin, s2);
int c1[MAX] = {0};
int c2[MAX] = {0};
for(int i=0; i<s1.length(); i++){
c1[s1.at(i)]++;
}
for(int i=0; i<s2.length(); i++){
c2[s2.at(i)]++;
}
int count = 0;
bool flag = true;
for(int i=0; i<MAX; i++){
if(c2[i]>c1[i]){
count += c2[i]-c1[i];
flag = false;
}
}
if(!flag){
cout<<"No "<<count<<endl;
}
else{
cout<<"Yes "<<s1.length()-s2.length()<<endl;
}
return 0;
}
注解
1、用getline()输入,不要用cin,避免错误。
2、统计时,只需判断是否不能买,和缺少的数量。如果不存在缺少的,就是可以买,多余的数量就是总数量减需要的数量,可自动计算。