演算法 變位詞

2021-10-04 11:50:51 字數 886 閱讀 2279

如果兩個單詞的組成字母完全相同,只是字母的排列順序不一樣,則它們就是變位詞,兩個單詞相同也被認為是變位詞。如tea 與eat , nic 與cin, ddc與dcd, abc與abc 等。你的任務就是判斷它們是否是變位詞。

第一行乙個n,表示下面有n行測試資料。每行測試資料報括兩個單詞,如tea eat ,它們之間用空格割開

對於每個測試資料,如果它們是變位詞,輸出yes,否則輸出no.

3tea eat

ddc cdd

dee dde

yesyes

no

#include

#include

using

namespace std;

intmain()

while

(n);if(

strlen

(str1)

!=strlen

(str2)

)else}}

for(

int i =

0; i <

strlen

(str1)

; i++)}

}}if(flag ==1)

cout<<

"yes"

cout<<

"no"

return0;

}

1.變位詞必須滿足長度相同,所以首先判斷長度,不相同,則輸出「no」;

2. b[26] ,存放26個字母,a[26],對應26個字母的個數,將第乙個單詞放進去;

3. 判斷第二個單詞的字母個數是否和第乙個單詞相同,有乙個字母相同,則在a[26]中減少乙個相應字母;

4. 判斷a[26]陣列中字母大小是否為負數,有,則輸出「no」。

尋找變位詞

程式設計珠璣 五 尋找變位詞 今天的問題是關於變位詞的,首先來看問題的描述 給定一本英語單詞詞典,請找出所有的變位詞集。所謂的變位詞是指,組成各個單詞的字母完全相同,只是字母排列的順序不同。比如,pots stop tops就是變位詞。將變位詞程式組織成三段式的 管道 結構,前乙個程式的輸出檔案將是...

變位詞排序

請編寫乙個方法,對乙個字串陣列進行排序,將所有變位詞合併,保留其字典序最小的乙個串。這裡的變位詞指變換其字母順序所構成的新的詞或短語。例如 和 integral 就是變位詞。給定乙個string的陣列str和陣列大小int n,請返回排序合併後的陣列。保證字串串長小於等於20,陣列大小小於等於300...

變位詞問題

問題描述 給定乙個英語詞典,找出其中的所有變位詞集合。例如,pots stop 和 tops 互為變位詞,因為每乙個單詞都可以通過改變其他單詞中的字母的順序來得到。問題解析 變位詞具有相同的長度,相同的字元,唯一的區別就是這些相同的字元按照不同的順序排列成不同的字串而已。如果有一種方法唯一標識這些相...