14.leetcode最長共通接頭辞python解法
文字列配列の最長の共通接頭辞を検索する関数を作成します.
共通接頭辞が存在しない場合、空の文字列
例1:
例2:
説明:
すべての入力には、小文字
私は暴力循環法だけを考えて、循環は最初のアルファベットを比較して、初期tは“”で、もし首位がすべて同じならばtに追加して次の位を比較して、異なるならばtに戻ります.時間性能はO(n*m)であり、44 msの時間をかけて、Longest Common PrefixのPython 3提出で99.65%のユーザーを破った.
もう1つのコミットレコードの構想を貼り付けて、最初の文字列を取って次の文字列と循環して比較して、find()マッチングで検索して、インデックスが0でない場合、一致する文字列の最後のアルファベットを空にします.
共通接頭辞が存在しない場合、空の文字列
""
が返されます.例1:
: ["flower","flow","flight"]
: "fl"
例2:
: ["dog","racecar","car"]
: ""
: 。
説明:
すべての入力には、小文字
a-z
のみが含まれます.私は暴力循環法だけを考えて、循環は最初のアルファベットを比較して、初期tは“”で、もし首位がすべて同じならばtに追加して次の位を比較して、異なるならばtに戻ります.時間性能はO(n*m)であり、44 msの時間をかけて、Longest Common PrefixのPython 3提出で99.65%のユーザーを破った.
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs)==0:
return ""
t=""
flag=0
strs=sorted(strs,key=lambda x:len(x))
for n in range(len(strs[0])):
temp=strs[0][n]
for i in strs[1::]:
if i[n]==temp:
continue
else:
flag=1
break
if flag!=1:
t+=temp
return t
もう1つのコミットレコードの構想を貼り付けて、最初の文字列を取って次の文字列と循環して比較して、find()マッチングで検索して、インデックスが0でない場合、一致する文字列の最後のアルファベットを空にします.
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0:
return ""
prefix = strs[0]
for s in strs[1:]:
while s.find(prefix) != 0:
prefix = prefix[0:len(prefix) - 1]
if prefix == "":
return prefix
return prefix