Python實現 14 最長公共字首

2021-09-02 05:10:50 字數 1291 閱讀 6742

題目描述:

編寫乙個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串""

示例1:

輸入:["flower","flow","flight"]輸出:"fl"

示例:2

輸入:["dog","racecar","car"]輸出:""解釋:輸入不存在公共字首。

解析:

看著是很常見平常的題目,可是卻搞了好久,也沒搞出來,迴圈的表示老是出錯,然後看了大神的部落格,總結如下:

1.最長的公共字首,也不會超過最短字串的長度,所以可以求最短字串的長度

2.用zip的特性,以及set集合不重複性

#最長的字首不會超過最短字串的長度

class solution:

def longestcommonprefix(self, strs):

""":type strs: list[str]

:rtype: str

"""if not strs:

return ""

if len(strs)==1:

return strs[0]

min1=min(len(x)for x in strs)

end=0

while endfor i in range(1,len(strs)):

if strs[i][end]!=strs[i-1][end]:

return strs[0][:end]

end+=1

return strs[0][:end]

#利用zip和set集合的特性

class solution(object):

def longestcommonprefix(self, strs):

""":type strs: list[str]

:rtype: str

"""s=""

if len(strs)==0:

return ""

for each in zip(*strs):

if len(set(each))==1:

s+=each[0]

else:

return s

return s

14 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母a z。思路 兩兩對比,產生最後的公共字串 cla...

14 最長公共字首

分析 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。當字串陣列為空或者字串陣列中有空串時,不存在公共字首 當字串陣列只有乙個元素時,公共字首就是...

14 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 思路一 先找到陣列中最短元素,最長公共子串不會超過最短元素 對第乙個元素迭代分割,分割後的子串用於迭代比較是否相同。class solution if str...