最長公共字首

2021-09-26 15:05:04 字數 983 閱讀 8320

題目:

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

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

示例 1:

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

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共字首。

說明:所有輸入只包含小寫字母 a-z 

思路:利用python的zip函式,把str看成list然後把輸入看成二維陣列,左對齊縱向壓縮,然後把每項利用集合去重,之後遍歷list中找到元素長度大於1之前的就是公共字首。

詳細解說:

1.利用zip函式將str陣列的每個元素縱向排列為乙個乙個集合。

比如str=["flower","flow","flight"]

zip(*str)=

[(f ,f,f),

(l,l,l),

(o,o,i),

(w,w,g)

(e,h)

(r,t)]

再用map函式將每個元素轉為集合的格式。

用enumerate函式對每個集合去重。

剩下str為:[,,

]去重後,遇到集合長度超過1,則之後不重複了,停止遍歷集合列表。

**如下:

def longestcommonprefix(self, strs: list[str]) -> str:

if not strs:

return ""

anss=list(map(set,zip(*strs)))

ans=""

for i,num in enumerate(anss):

num=list(num)

if len(num)>1:

return ans

ans+=num[0]

return ans

最長公共字首

描述 給k個字串,求出他們的最長公共字首 lcp 樣例 在 abcd abef 和 acef 中,lcp 為 a 在 abcdefg abcefg abcefa 中,lcp 為 abc 新知識點 vectorstrs既可以是一維的,也可以是多維的。在這裡講解三維的初始化。vector str str...

最長公共字首

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

最長公共字首

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