免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
最長共通接頭文字列の配列を見つけるために関数を記述します。
共通の接頭辞がない場合は、空の文字列を返します「」
例1:
入力:[ "花"、 "流れ "、 "飛行"]
出力: "FL"
例2:
入力:[「犬」、「レースカー 」、「車」]
出力:「」
説明:入力共通のプレフィックスがありません。
説明:
すべての入力は、z小文字のみが含まれています。
思考
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not strs:
return ""
lens=len(strs)
tmp=strs[0]
for i in range(1,lens):
prep=strs[i]
for j in range((min(len(tmp),len(prep)))):
if tmp[j]!=prep[j]:
tmp=tmp[:j]
break
else:
if len(tmp)>len(prep):
tmp=prep
return tmp
思考:第一及び共通部分を取得する第2の比、及び第3の比を取得します。そしてように、制御方法は、範囲外の添字を留意すべきである、と比較ストリングTMPより低い長いことに留意されたいです。
アイデア2
コメントの領域で最大値と最小値を見つけ、中に何人かの人々はPythonの太ももの練習、最大分のpythonでソート直接ASCIIコードを使用して撮影しました
if not strs: return ""
s1 = min(strs)
s2 = max(strs)
for i,x in enumerate(s1):
if x != s2[i]:
return s2[:i]
return s1
参照メソッド@xshura
小概要
Pythonはその特別なメソッドを持っており、非常に優れたアルゴリズムが付属していくつかの方法で、これらのメソッドの熟練した使用は、Python言語に精通に基づくべきです。