編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 1:
輸入: [「flower」,「flow」,「flight」]
輸出: 「fl」
示例 2:
輸入: [「dog」,「racecar」,「car」]
輸出: 「」
解釋: 輸入不存在公共字首。
說明:所有輸入只包含小寫字母 a-z 。
解題思路:這是我第一次完全自己做的,寫個思路。
首先將空列表和有空字串列表排除,然後依據字串長度排序,以最短字串為依據找,我覺得最短字串每次從後縮短複雜度會低一點,最後用count來記錄,方便判斷是否都具有。
歡迎優化。
class
solution
:def
longestcommonprefix
(self, strs: list[
str])-
>
str:
iflen
(strs)==0
ormin
(strs)
==""
:return
"" strs.sort(key=
lambda x:
len(x)
)for i in
range
(len
(strs[0]
)): com=strs[0]
[:len(strs[0]
)-i]
count=
0for item in strs[1:
]:if item[
:len
(strs[0]
)-i]
==com:
count+=
1else
:break
if count==
len(strs)-1
:return com
if count!=
len(strs)-1
:return
""
測試結果:
執行用時 :
36 ms
, 在所有 python3 提交中擊敗了
74.06%
的使用者記憶體消耗 :
13.6 mb
, 在所有 python3 提交中擊敗了
5.04%
的使用者
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...