如果一個字符串是 另一個字符串的重新排列組合,那么這兩個字符串互為變位詞。比如,”heart”與”earth”互為變位 詞,”Mary”與”arMy”也互為變位詞。
輸入格式:
第一行輸入第一個字符串,第二行輸入第二個字符串。
輸出格式:
輸出“yes”,表示是互換詞,輸出“no”,表示不是互換詞。
輸入樣例1:
在這里給出一組輸入。例如:
Mary arMy
輸出樣例1
在這里給出相應的輸出。例如:
yes
輸入樣例2:
在這里給出一組輸入。例如:
hello 114 114 hello
輸出樣例2:
在這里給出相應的輸出。例如:
yes
輸入樣例3:
在這里給出一組輸入。例如:
Wellcom mocllew
輸出樣例3:
在這里給出相應的輸出。例如:
no
思路:用散列的思想,把每個字母存進a數組中(每個字母有唯一的Ascll碼值)
然后用string類的find查找,用兩重for循環也可(可能卡時間)
1 #include<iostream> 2 #include<string> 3 #include<cstring> 4 using namespace std; 5 int main() 6 { 7 string s1, s2; 8 int a[255], flag = 0; 9 memset(a, 0, sizeof(a)); 10 getline(cin, s1); 11 getline(cin, s2); 12 for (int i = 0; i < s1.length(); i++) 13 a[s1[i]]++; 14 for (int i = 0; i < s2.length(); i++) 15 { 16 if (s1.find(s2[i])!=string::npos) 17 a[s2[i]]--; 18 } 19 for (int i = 0; i <255; i++) 20 { 21 if (a[i]!=0) 22 { 23 flag = 1; 24 } 25 } 26 if (flag) 27 { 28 cout << "no"; 29 } 30 else 31 cout << "yes"; 32 }