poj 2159(转自http://xiaoqing.yiyi.blog.163.com/blog/static/12208726820096207185942
时间:2010-09-14 来源:v_vll
http://acm.pku.edu.cn/JudgeOnline/problem?id=2159
#include<iostream>
using namespace std;
#include<cstring>
char a[2][102];
int main()
{
int i,j,l;
int n[2][26]={0};
scanf("%s",a);
scanf("%s",a+1);
l=strlen(a[0]);
for(i=0;i<l;i++)
{
n[0][a[0][i]-'A']++;
n[1][a[1][i]-'A']++;
}//统计出现的的字母中相同字母的个数
for(i=0;i<26;i++)
{
for(j=0;j<26;j++)
{
if(n[0][i]==n[1][j])
{
n[1][j]=0;//这句很重要,把已经用的给消除了,不重复用
break;
}
}
if(j==26)
{
printf("NO\n");
break;
}
}
if(i==26)
printf("YES\n");
return 0;
}
//很聪明的想法,有很多我自己还没有掌握