思路很直接,input1用hashtable记录次数,Input2中的颜色遇到就减1。
注意:char shop[1005] 的1005题目中说不超过1000,我设成1001一个点会过不去,所以这种题边界最好设大一些。
#include <cstdio>
#include <algorithm>;
#include <cstring>
using namespace std;
int main(){
char shop[1005],want[1005];
int hashtable[256]={0};
fgets(shop,1005,stdin);
fgets(want,1005,stdin);
int len1 = strlen(shop);
int len2 = strlen(want);
int index=0;
for (int i=0;i<len1;i++){
hashtable[shop[i]]++;
}
for (int i=0;i<len2;i++){
if (hashtable[want[i]]>0) {
hashtable[want[i]]--;
index++;
}
}
if (index==len2) printf("Yes %d",len1-index);
else printf("No %d",len2-index);
return 0;
}