LA 3213 Ancient Cipher

题意:大白鼠上的题意我就不吐槽了!给你两个串,问你通过加密方式能不能把一个串转化成另一个串。加密方式为:1.交换位置 2.把一种字母变成另一种字母

坑点:

ACC

AAA

是不可以的,因为A对应了A,C就不能对应了。。

 

题解:贪心去找

 

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 string s1,s2;
 4 int pos1[30],pos2[30];
 5 int main()
 6 {
 7         while(cin>>s1>>s2)
 8         {
 9                 memset(pos1,0,sizeof(pos1));
10                 memset(pos2,0,sizeof(pos2));
11                 int i,len;
12                 len = s1.length();
13                 for( i = 0;i < len; i++)
14                 {
15                      pos1[s1[i]-'A']++;
16                      pos2[s2[i]-'A']++;
17                 }
18                 int flag;
19                 for(int i = 0;i < 26;i++)
20                 {
21                         if(pos1[i]!=0){
22                                 flag=1;
23                                 for(int j = 0;j < 26;j++)
24                                         if(pos1[i]==pos2[j])
25                                         {
26                                                 flag=0;
27                                                 pos2[j]=0;
28                                                 break;
29                                         }
30                                         if(flag) break;
31                         }
32                 }
33                 flag=0;
34                 for(int i = 0;i < 26;i++)
35                 if(pos2[i]!=0)
36                 {
37                         puts("NO");
38                         flag=1;
39                         break;
40                 }
41                 if(!flag) puts("YES");
42                 s1.clear();
43                 s2.clear();
44         }
45 }

 

posted on 2015-11-23 22:16  小松song  阅读(92)  评论(0)    收藏  举报

导航