質問:文字列の障害は、例えば、再配置された別の文字列の文字列を指します:python ptyhonは、配列、文字列の外にあります。今、書き込み機能は、2つの文字列が文字列をスクランブルするかどうかを決定します。
解決策1:チェック(Oの複雑さ(N- 2)
デフanagram_solution(S1、S2): もし!lenは(S1)= LEN(S2): 返す偽 LIST2 = リスト(S2) のための C でLIST2を: もし C ない でS1: 返すFalseの リターンを真
解決方法2:ソートと比較(Oの複雑さ(nlogn))
デフanagram_solution(S1、S2): リスト1 = リスト(S1) LIST2 = リスト(S2) list1.sort() list2.sort() であればリスト1 == list2の: 返す真の 他: 返す偽
解決策3:徹底的な方法(O(n)との複雑さ!)
S1は、継続的に、文字列とs2が同じ複雑さがn記述されていないかどうかを確認するために比較を破砕し、文字列を混乱させる!、
溶液4:カウントと比較する(複雑さはO(N)です)
デフanagram_solution(S1、S2): 場合!LEN(S1)= LEN(S2)は: 返す偽 NUM1 = [0] * 26 からnum2 = [0] * 26 リスト1 = リスト(S1)を リスト2 = リスト(S2) のための C1 でLIST1: NUM1 [ORD(C1) -ord(' A ')] + = 1 のための C2 におけるLIST2: NUM2 [ORD(C2) -ord(' A ')] + = 1 のためのインデックスで範囲(LEN(NUM1 )): もし NUM1 [インデックス] =!num2の[インデックス]: 返す偽 のリターンを真