我們現在做乙個單詞遊戲,遊戲規則為將給定的一系列單詞按照同構詞(由相同字母組成,但可能順序不同的單詞)規則進行分組。例如:
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,用空格隔開,分別表示物品組數...