11.2 編寫一個方法,對字元串數組進行排序,将所有變位詞1排在相鄰的位置。
解法:
變位詞:由變換某個詞或短語的字母順序構成的新的詞或短語。例如,“triangle”是“integral”的變位詞。
此題有個要求,對數組中的字元串進行分組,将變位詞排在一起。注意,除此之外,并沒有要求這些詞按特定順序排列。
做法之一就是套用一種标準排序算法,比如歸并排序或快速排序,并修改比較器。這個比較器用來訓示兩個字元串互為變位詞就是相等的。
檢查兩個詞是否為變位詞,最簡單的方法是什麼呢?我們可以數一數每個字元串中各個字元出現的次數,兩者相同則傳回true。或者,直接對字元串進行排序,若兩個字元串互為變位詞,排序後就相同。
C++實作代碼: