Problem F: 字母饼干
Description
Kitty非常喜欢曲奇饼干,特别是字母饼干。现在他有一些字母饼干,她想要选一些饼干出来拼一些单词。
任务很容易,你需要回答她能否拼出来她想要的单词
Input
输入包含多个测试样例,读到文件末尾
每个测试样例的第一行,包含一个整数,n(0<n<=100)
接下来一行,有n个大写字母,代表她有的字母曲奇饼干
最后一行只包含一个大写字母的单词,单词的长度不超过n
Output
对每一个样例,如果她能拼出来这个单词,输入“Yes”,不然输出“No”
Sample Input
7
ARDHPYP
HAPPY
6
ARDHPY
HAPPY
Sample Output
Yes
No
来源: http://gdutcode.sinaapp.com/problem.php?cid=1029&pid=5
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
char A[120];
char B[120];
int Qu(void)
{
scanf("%s",A);scanf("%s",B);
int len1=strlen(A);
map<char,int> MAP;
map<char,int>::iterator it;
for(int i=0;i<len1;i++)
{
it=MAP.find(A[i]);
if(it==MAP.end()) MAP[A[i]]=1;
else (*it).second++;
}
int len2=strlen(B);
for(int i=0;i<len2;i++)
{
it=MAP.find(B[i]);
if(it==MAP.end()) return 0;
else if(--(*it).second<0) return 0;
}
return 1;
}
int main(void)
{
int T;
while(~scanf("%d",&T))
printf("%s\n",Qu()?"Yes":"No");
}