題目:
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 ""。
示例 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...