字串根據字典值排序問題

2021-07-14 11:14:57 字數 881 閱讀 6819

字串根據字典值排序問題,就是指對給定的字串,按照首字母的字典值排序,如果首字母相同的字串,則按照第二個字母,依次內推,比如說

,排序後應該是

剛開始接觸到這個問題時候,當時想著排序首先按照第乙個字母,如果第乙個字母相同的那些字串,再歸為一類,再按照第二個字母排序。。。依次類推。

所以不由自主想到了遞迴,這樣問題就變得比較複雜。

後來仔細想了一下,在這個問題上,我開始時候思路就陷入了乙個誤區,不妨可以按照以下思路重新思考這個問題:

這個問題和普通的數字排序有什麼本質區別?

普通的數字排序是根據數字的」大小「關係排序 ,那麼這個問題呢?其實也是根據字串的」大小「關係排序,只不過數字的大小關係可能比較簡單,我們用乙個比較運算子立馬可以得到結果,而字串之間的大小關係,稍微複雜了一點點,得將字串中的字元拆開來,分別比較,直到比較出結果為止。

這樣看來,其實這個排序和普通的排序的唯一區別就是:在比較」大小「的方法上,略有差異,其他邏輯居然完全一樣。所以,我們依然可以用傳統的排序方法,解決這個問題,唯一需要做的就是,重新寫乙個比較大小的方法即可。

下面是用最簡單的」氣泡排序「實現的一段**:

public class sortbydictionary  else if (s1.charat(i) < s2.charat(i))  else 

} if (i == length1) else

} public static void main(string args) ;

for (int i = 0; i < s.length - 1; i++)

}if (!change)

} for (int i = 0; i < s.length; i++)

}}

字串字典排序

把字串以字典的展示形式排序,如把字串 abc bad aade bdca 排列成 aade abc bad bdca 1.使用氣泡排序 1 相鄰兩資料兩兩比較,較大的放到後面,直到把最大的字串放在最後乙個位置。2 從頭開始再進行相鄰資料兩兩比較,較大的放到後面,直到把第二大的字串放在倒數第二個位置。...

字串排序問題

編寫乙個程式,將輸入字串中的字元按如下規則排序 乙個測試用例可能包含多組資料,請注意處理 規則 1 英文本母從 a 到 z 排列,不區分大小寫。如,輸入 type 輸出 epty 規則 2 同乙個英文本母的大小寫同時存在時,按照輸入順序排列。如,輸入 baba 輸出 aabb 規則 3 非英文本母的...

字串排序問題

比賽描寫敘述 有一些a c m組成的字串,將其按字元 a排序。輸入 一組測試資料,輸入資料由若干行組成,每行是字元a c或m組成的字串。每乙個字串長度不超過1200 輸出 對全部輸入的資料,先按字元 a的個數進行公升序排序。假設字元 a的數量相等,再按出現的先後順序排序,每行輸出乙個字串。例子輸入 ...