#include<bits/stdc++.h>
using namespace std;
int main(){
int ans[1010],test[1010];
string s,ss;
while(cin>>s>>ss)
{
memset(ans,0,sizeof ans);
memset(test,0,sizeof test);
int flag=0;
int n=s.size();
for(int i=0;i<s.size();i++)
ans[s[i]-'A']++;
for(int i=0;i<ss.size();i++)
test[ss[i]-'A']++;
sort(ans,ans+26);
sort(test,test+26);
for(int i=0;i<26;i++)
{
if(ans[i]!=test[i])
{
flag=1;
break;
}
}
if(flag==1)
cout<<"NO"<<endl;
else
cout<<"YES"<<endl;
}
}
题目描述】:密码古典密码学有两种密码,仿射和换位,给定一段明文,一段密文,看密文能否由这段明文,是否可能通过仿射和换位得到。【算法分析】:这道题目的关键是读题。因为接触过密码学,所以容易理解。
最新推荐文章于 2024-08-02 23:27:55 发布