题目描述
nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的…现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?
输入描述:
输入有多组数据。
每组数据包含两个字符串A、B, 代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。字符串长度不大于10000。
输出描述:
每一组输入对应一行输出:如果B盒中所有球的类型在A中都有,并且每种球的数量都不大于A,则输出"Yes”;否则输出"No”
这里可以利用map记录字母以及字母出现对应的次数,把AB两个盒子中的乒乓球以及个数记录下来,然后根据题意去判断。
直接上代码,代码简单易懂:
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
string s1,s2;
while(cin>>s1>>s2)
{
map<char,int>A,B;
int i=0;
for(i=0;i<s1.size();i++)
{
A[s1[i]]++;
}
for(i=0;i<s2.size();i++)
{
B[s2[i]]++;
}
for(i='A';i<='Z';i++)
{
if(B[i]>A[i])
{
cout<<"No"<<endl;
break;
}
if(i=='Z')
cout<<"Yes"<<endl;
}
}
return 0;
}
小白一只,若有错,希望指出=-=