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 }
浙公网安备 33010602011771号