PAT_A1092
PAT甲级1092.
目录
A1092
题目
样例
样例1
输入:
ppRYYGrrYBR2258
YrR8RrY
输出:
Yes 8
样例2
输入:
ppRYYGrrYB225
YrR8RrY
输出:
No 2
思路和坑点
使用map容器映射每一个字符串的字符个数,进行统计,分两种情况进行讨论即可。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(void){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt","r",stdin);
#endif
string a,b; //分别记录两个字符串
int ans=0,tag=1;
getline(cin,a); getline(cin,b);
unordered_map<char,int> shop,eva; //使用map统计字符的个数
for(int i=0;i<a.size();i++)
shop[a[i]]++;
for(int i=0;i<b.size();i++)
eva[b[i]]++;
for(auto it=eva.begin();it!=eva.end();it++){ //遍历eva的map容器,如果商店提供的不够,tag为0,表示不够
int s=shop[it->first],e=it->second;
if(s<e){
tag=0; ans+=(e-s); //统计不够的数量
}
}
if(tag) { //如果够了计算多购买的个数
printf("Yes ");
ans=a.size()-b.size();
}
else printf("No ");
printf("%d",ans);
return 0;
}