密码验证问题,注意题目有点难理解,统计原串与密串中出现的各字符的出现次数,按次数排序。如果a加密成b,则a出现的次数一定与b出现的次数相等,利用这个原理就行
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=105;
char mi[maxn],msg[maxn];
int main()
{
int m[26]={0},g[26]={0};
scanf("%s%s",mi,msg);
int lm=strlen(mi);
for(int i=0;i<lm;i++){
m[mi[i]-'A']++;
g[msg[i]-'A']++;
}
sort(m,m+26);
sort(g,g+26);
bool flag=true;
for(int i=0;i<26;i++){
if(m[i]!=g[i]){
flag=false;
break;
}
}
if(flag)puts("YES");
else puts("NO");
return 0;
}