Source Code
Problem: 2159 | User: mtawaken | |
Memory: 164K | Time: 16MS | |
Language: C++ | Result: Accepted |
- Source Code
#include<cstdio>
char enc[100];
char orig[100];
char enc_code[26];
char orig_code[26];
int enc_size,orig_size;
bool check(){
enc_size=orig_size=0;
while(enc[enc_size]!=0)
enc_size++;
while(orig[orig_size]!=0)
orig_size++;
return enc_size==orig_size;
}
void generate_code(){
//A=65
for(int i=0;i<26;i++)
enc_code[i]=0;
for(int i=0;i<enc_size;i++)
enc_code[enc[i]-65]+=1;
for(int i=0;i<26;i++)
orig_code[i]=0;
for(int i=0;i<orig_size;i++)
orig_code[orig[i]-65]+=1;
}
bool exam(){
int i,j;
for(i=0;i<26;i++){
if(enc_code[i]==0)continue;
for(j=0;j<26;j++){
if(orig_code[j]==enc_code[i]){
orig_code[j]=0;
break;
}
}
if(j==26)return false;
}
for(i=0;i<26;i++)
if(orig_code[i]!=0)return false;
return true;
}
int main(){
while(scanf("%s",enc)!=EOF){
scanf("%s",orig);
if(!check()) {
printf("%s\n","NO");
continue;
}
generate_code();
if(exam())
printf("%s\n","YES");
else
printf("%s\n","NO");
}
return 0;
}
有一一对应就可以。