B1039/A1092

/*
整体思路:第一步:遍历sell(商家卖的珠子)数组,经历过这一轮的hash,所有的字符和字符的个数都存进去了
         第二部步:用wanted的珠子去抵消商家卖的珠子,如果sell中的珠子>=0,说明商家的珠子够你用的;
                  如果sell的珠子数量<0,说明商家珠子不够了
         第三步:根据第二部的结果,我们使用一个miss,来代表商家缺了多少个珠子
         for

*/
#include<bits/stdc++.h>
using namespace std;
int hashTable[256]={0},miss=0; 
int main(){
string sell,wanted;
cin>>sell>>wanted;
//第一步:
for(int i=0;i<sell.length();i++){ 
	hashTable[sell[i]]++;
}
//第二部
for(int i=0;i<wanted.length();i++){
	hashTable[wanted[i]]--;
	if(hashTable[wanted[i]]<0)miss++;
}
//第三步
if(miss>0) cout<<"No"<<" "<<miss;
else cout<<"Yes"<<" "<<sell.length()-wanted.length();
	return 0;
}




发布了54 篇原创文章 · 获赞 4 · 访问量 2434

猜你喜欢

转载自blog.csdn.net/tian1191132442/article/details/102827340
今日推荐