poj 2159(转自http://xiaoqing.yiyi.blog.163.com/blog/static/122087268200962071859425/)

 

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;
}
//很聪明的想法,有很多我自己还没有掌握

posted @ 2010-09-14 22:40  v_vll  Views(250)  Comments(0)    收藏  举报