最長共通接頭文字列の配列を見つけるために関数を記述します。
共通の接頭辞がない場合は、空の文字列を返します「」
例1:
入力:[ "花"、 "流れ "、 "飛行"]
出力: "FL"
例2:
入力:[「犬」、「レースカー 」、「車」]
出力:「」
説明:入力共通のプレフィックスがありません。
説明:
すべての入力は小文字のみがAZ含まれています。
出典:滞在ボタン(LeetCode)
//leetcode-cn.com/problems/longest-common-prefix:リンク:httpsの
すべてのネットワークからの控除が著作権を保有。商業転載は、ソースを明記してください許可公式、非商用の転載をご連絡ください。
Pythonのソリューション:
そこのpython最大なので、minは、文字列のアスキーの大きさを比較することができ、最大と最小の文字列を直接見ることができ、最長共通接頭辞である彼らの共通のプレフィックスを比較します。プレフィックスmaxと大minの存在の割合は、その接頭辞分を探します。
1 クラスソリューション: 2 DEF - >:longestCommonPrefix(リスト[STR]自己、STRS)STR: 3 なら ない STRS:リターン "" 4 S1 = MAX(STRS) 5 S2 = 分(STRS) 6 用の I、X に列挙(S2): 7 であれば、X =!S1 [i]が: 8 リターンS1 [:I] 9 リターン S2
結果:
によって
詳細を表示
実行時:24ミリ秒は、すべてのpython3の提出にユーザーの99.75パーセントを打ちます
メモリ消費量:13.2メガバイトには、すべてのpython3の提出にユーザーの41.66パーセントを破りました
発見はジップと回答することができた後も議論を参照してください。
共通プレフィックス素子長が1より大きい前トラバーサルリストが見つかった後にリストとしてSTRは、各使用のための二次元アレイ、左揃え長手方向の圧縮、及び次いで再集合へとして入力されます。
1 DEF :longestCommonPrefix(自己、STRS) 2 なら ない STRS:リターン "" 3 SS =リスト(マップ(セット、ZIP(* STRS))) 4つの RES = "" 5 用の I、X に列挙(SS): 6 X = リスト(X) 7 場合でlen(X)> 1 : 8 ブレーク 9つの RES = RES + X [0] 10の 戻り RES