![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
//
POJ 2159
// 题目类型:数学题
// 题目理解:只要两个字符串各自含有的不同的字母的个数相等就行了
#include < iostream >
#include < stdio.h > // G++必须引入使用prinf等必须引入此库
// #include <conio.h>
using namespace std;
int main()
{
// freopen("1.txt","r",stdin);
int original[ 27 ] = { 0 };
int encrypted[ 27 ] = { 0 };
int cntorigin[ 101 ] = { 0 };
int cntencry[ 101 ] = { 0 };
char temp;
while ((temp = getchar()) != ' \n ' )
encrypted[temp - ' A ' + 1 ] ++ ; // 统计每个字母的出现次数
while ((temp = getchar()) != ' \n ' )
original[temp - ' A ' + 1 ] ++ ;
for ( int i = 1 ;i < 27 ; ++ i)
{
cntorigin[original[i]] ++ ; // 统计出现i次的频数
cntencry[encrypted[i]] ++ ;
}
for ( int j = 1 ;j < 101 ; ++ j)
{
if (cntorigin[j] != cntencry[j]) // 进行比较
{
printf( " NO\n " );
// getch();
return 0 ;
}
}
printf( " YES\n " );
// getch();
return 0 ;
}
// 题目类型:数学题
// 题目理解:只要两个字符串各自含有的不同的字母的个数相等就行了
#include < iostream >
#include < stdio.h > // G++必须引入使用prinf等必须引入此库
// #include <conio.h>
using namespace std;
int main()
{
// freopen("1.txt","r",stdin);
int original[ 27 ] = { 0 };
int encrypted[ 27 ] = { 0 };
int cntorigin[ 101 ] = { 0 };
int cntencry[ 101 ] = { 0 };
char temp;
while ((temp = getchar()) != ' \n ' )
encrypted[temp - ' A ' + 1 ] ++ ; // 统计每个字母的出现次数
while ((temp = getchar()) != ' \n ' )
original[temp - ' A ' + 1 ] ++ ;
for ( int i = 1 ;i < 27 ; ++ i)
{
cntorigin[original[i]] ++ ; // 统计出现i次的频数
cntencry[encrypted[i]] ++ ;
}
for ( int j = 1 ;j < 101 ; ++ j)
{
if (cntorigin[j] != cntencry[j]) // 进行比较
{
printf( " NO\n " );
// getch();
return 0 ;
}
}
printf( " YES\n " );
// getch();
return 0 ;
}