VJ_比较数字个数_map

输入两个长度不超过100的字符串,判断第一个字符串中出现的字母(在'a'-'z'和'A'-'Z'中取)其出现的次数是否都不大于该字母在第二个字符串中出现的次数。

Input

输入为两个长度不超过100的字符串。该字符串中可以有任意的字符包括*&^%$#@等。每个字符串以回车结束输入。

Output

输出为一行。如果第一个字符串中的每个字母的出现次数不大与其在第二个字符串中出现的次数,则输出1。否则输出0;

Sample

Inputcopy Outputcopy
aaabc
aljfbcaaa
XYZ
xxxyzG
bcdE
bcdbbEfg
1
0
1

Hint

字母要区分大小写。测试数据有多组。

//
#include<bits/stdc++.h>
using namespace std;

map<char,int> mp;
map<char,int>::iterator it;

int main()
{
    string s;
    int i;

    while( getline( cin,s ) )
    {
        mp.clear();
        
        for( i=0;i<s.size();i++ )
            if( isalpha( s[i] ) ) mp[ s[i] ]--;

        getline( cin,s );
        for( i=0;i<s.size();i++ )
            if( isalpha( s[i] ) ) mp[ s[i] ]++;
        
        for( it=mp.begin();it!=mp.end();it++ )
            if( it->second<0 ) break;

        if( it==mp.end() )  cout<<1<<endl;
        else                cout<<0<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_63173957/article/details/125135432
vj
今日推荐