问题
https://vjudge.net/problem/UVA-1339
分析
主要是读题,题目中说明了同时应用了两种加密方式,先打乱顺序,然后进行替换,所以不能再使用一一对应的方式求解,统计每个字幕出现的次数,进行排序,看看两个序列是否相等
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <map>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn=100+5;
char str[maxn],str2[maxn],p[26],p2[26];
int ans[maxn],n,kase=0;
int main(void){
while(scanf("%s",str)==1){
scanf("%s",str2);
memset(p,0,sizeof(p));
memset(p2,0,sizeof(p2));
bool ok=true;
int len=strlen(str);
for(int i=0;i<len;++i){
p[str[i]-'A']++;
p2[str2[i]-'A']++;
}
sort(p,p+26);
sort(p2,p2+26);
for(int i=0;i<26;++i){
if(p[i]!=p2[i]){
ok=false;
break;
}
}
if(ok) printf("YES\n");
else printf("NO\n");
}
}