leetcode1370

1  クラスソリューション:
 2      DEF(自己、S:STR)sortString - > STR:
 3          N = LEN(S)
 4          DIC = {}
 5          のための I における範囲(N):
 6              場合、S [i]はない DIC:
 7                  DIC [S [I] = 1
 8              さもなければ9                  DIC [S [I] + = 1
 10          sorted_dic1 =ソート(dic.items()、キー= ラムダX(X [0]))
 11          sorted_dic2 =ソート(dic.items()、キー= ラムダ X(X [0])、逆=真)
 12          カウント= 0
 13          結果= '' 
14          ながら <数:nは
 15              のための D sorted_dic1:
 16                  キー= D [0]が
 17                  であれば DIC [キー]> 0:
 18                      - = 1 DIC [キー]
 19                      結果+ = キー
 20                      カウント+ = 1
 21              のための D sorted_dic2:
 22                  キー= D [0]が
 23                  であれば DIC [キー]>0:
 24                      DIC [キー] - = 1
 25                      結果+ = キー
 26                      カウント+ = 1
 27          リターン結果

アルゴリズム的思考:ハッシュ。

各文字が二回辞書のソートに表示される辞書のレコードを多数回使用してください。

文字の正のシーケンスのソートによると、文字が逆の順序でソート。

「蛇」サイクル、辞書を横断する第一正のシーケンス、結果の文字列にスプライスから取り出し、各文字、次に逆の順序で辞書をトラバースは、文字列スプライシングから除去されるたびに結果に。

スプライスの数nすると、すべての文字の記述は、結果文字列に接合し、結果文字列を返してきました。

おすすめ

転載: www.cnblogs.com/asenyang/p/12440421.html