LeetCode014 最長公共字首

2021-09-22 08:11:17 字數 1559 閱讀 9917

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

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

示例 1:

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

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

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

各種考慮不全,提交了好多次。

執行用時 : 56 ms, 在longest common prefix的python3提交中擊敗了71.73%的使用者

記憶體消耗 : 13.1 mb, 在longest common prefix的python3提交中擊敗了92.30% 的使用者

class solution:

def longestcommonprefix(self, strs):

res = ""

if not strs:

return ""

if len(strs) == 1 and len(strs[0])!=0:

return strs[0][0]

else:

minlen = min(strs,key=len)

strs.remove(minlen)

#print(strs)

for i in range(len(minlen)):

tmp =

for j in strs:

flag = list(set(tmp))

if len(flag) == 1:

if minlen[i] == flag[0]:

res += minlen[i]

else:

break

else:

break

return res

s = solution()

res = s.longestcommonprefix(["flower","flow","flight"])

print(res)

思路二:

利用python的max()和min(),在python裡字串是可以比較的,按照ascii值排,舉例abb, aba,abac,最大為abb,最小為aba。所以只需要比較最大最小的公共字首就是整個陣列的公共字首。

def longestcommonprefix(self, strs):

if not strs: return ""

s1 = min(strs)

s2 = max(strs)

for i,x in enumerate(s1):

if x != s2[i]:

return s2[:i]

return s1

力扣日記 014 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 先說一句題外話,力扣裡這道題標註是 簡單...

最長公共字首 LeetCode

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例1 輸入 dog rececar car 輸出 說明 所有輸入只包含小寫字母 a z。首先找到長度最小的字串 minstring,假設此字串為公共字首,依次...

leetcode 最長公共字首

題目 編寫乙個函式來查詢字串陣列中的最長公共字首,如果不存在公公字首,則返回空字串 示例 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 思路 第一步 令乙個變數等於其中乙個 的首字母,依次看後面的字串是否也有,若沒有跳出整層迴圈,若有計入陣列中 ...