第一次用map,通过这道题入门。
#include<stdio.h>
#include<map>
#include<string>
#include<cstring>
using namespace std;
int main()
{
map<char,int> m;
char s1[1002],s2[1002];
bool f = true;
int n=0;
scanf("%s",&s1);
scanf("%s",&s2);
for(int i=0;i<strlen(s1);i++)
{
if(m.find(s1[i])!=m.end())
m[s1[i]]++;
else
m.insert(make_pair(s1[i],1));
}
for(int i=0;i<strlen(s2);i++)
{
if(m.find(s2[i])!=m.end())
m[s2[i]]--;
else
m.insert(make_pair(s2[i],-1));
}
map<char,int>::iterator it ;
for(it = m.begin();it!=m.end();it++)
{
if(it->second<0)
{
f = false;
n-= it->second;
}
}
int nn=0;
if(f)
{
nn = strlen(s1) - strlen(s2);
printf("Yes %d",nn);
}
else
printf("No %d",n);
}