9 同構詞分組

2021-08-02 17:54:08 字數 1260 閱讀 3758

我們現在做乙個單詞遊戲,遊戲規則為將給定的一系列單詞按照同構詞(由相同字母組成,但可能順序不同的單詞)規則進行分組。例如:

eat tea tan ate nat bat
上述為5個單詞,按照同構詞的規則,我們可以將其分為三組

ate eat tea

batnat tan

現在請你程式設計實現同構詞的分組。

輸入

輸入包含兩行,第一行輸入整數 n(1 ≤ n ≤ 50)表示單詞的個數,第二行輸入 n 個單詞,單詞間用空格分隔,每個單詞由26個小寫字母(a~z)組成,且每個單詞的長度不超過10個字元。

輸出

輸出為分組後的單詞,每組一行,組內及組間的單詞順序按字典序排列,如上述示例。

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

6↵eat tea tan ate nat bat↵

以文字方式顯示

ate eat tea↵

bat↵

nat tan↵

1秒1024kb0

#include//ac

#include#includeint n, last = 0;

char str[65][25] = , str2[65][25] = ;

int num[65] = , strnum[65][65] = ;

int numm[65] = ;

int cmp1(const void *a, const void *b)

void cmp2(void)

} }}void zusort(int last)

} }}int main()

for (int i = 0; i < n; i++)

for (int i = 0; i < n; i++)//分組}}

last++;

} }for (int i = 0; i < last; i++)//組內排序

for (int i = 0; i < last; i++)

numm[i] = i;//strnum[i] 'i'-->numm[i]

cmp2(); //組間排序

//輸出順序排序

for (int i = 0; i < last; i++) }

return 0;

}

同構詞分類

給定string陣列把所有的同構詞都聚在一起 例 eat tea tan ate nat bat 返回 bat eat tea ate tan nat 說明 如果兩個詞所組成的字母完全相同,只是字母的位置不同,就稱之為同構詞。思路 遍歷整個str陣列,把他們排序的結果當作雜湊陣列的key,value...

分組揹包 Acwing 9 分組揹包問題

題目鏈結 有 n 組物品和乙個容量是 v 的揹包。每組物品有若干個,同一組內的物品最多只能選乙個。每件物品的體積是 vij,價值是 wij,其中 i 是組號,j 是組內編號。求解將哪些物品裝入揹包,可使物品總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行有兩個整數 n,v,用空格隔...

acwing 9 分組揹包問題

有 n 組物品和乙個容量是 v 的揹包。每組物品有若干個,同一組內的物品最多只能選乙個。每件物品的體積是 vij,價值是 wij,其中 i 是組號,j 是組內編號。求解將哪些物品裝入揹包,可使物品總體積不超過揹包容量,且總價值最大。輸出最大價值。第一行有兩個整數 n,v,用空格隔開,分別表示物品組數...