LeetCode 03 最長公共字首

2021-10-06 23:59:20 字數 1517 閱讀 9282

編寫乙個函式以在字串陣列中找到最長的公共字首字串。 如果沒有公共字首,則返回乙個空字串「」

耗時64ms

class solution:

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

if len(strs) <= 1:

return strs[0] if len(strs) == 1 else ""

min_len = min([len(s) for s in strs])

#注意有空字串的情況

if min_len == 0:

return ""

end = 0

for end in range(min_len):

for j in range(1, len(strs)):

if strs[j][end]!= strs[0][end]:

return strs[0][:end]

#這個地方字串切片,end的偏移量的-1,所以這裡要加一

return strs[0][:end+1]

耗時48ms

```

class solution:

# @param strs: a list of strings

# @return: the longest common prefix

def longestcommonprefix(self, strs):

# write your code here

if len(strs) <= 1:

return strs[0] if len(strs) == 1 else ""

end, minl = 0, min([len(s) for s in strs])

while end < minl:

for i in range(1, len(strs)):

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

return strs[0][:end]

end = end + 1

#str[:0]就會自己返回空字串,所以不用處理minl ==0的情況

return strs[0][:end]

```

耗時40s,優秀:

```

class solution:

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

if not strs:

return ""

shortest = min(strs,key=len)

for i, ch in enumerate(shortest):

for other in strs:

if other[i] != ch:

return shortest[:i]

return shortest

```

最長公共字首 LeetCode

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

leetcode 最長公共字首

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

leetcode 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。var longestcommonprefix function strs s...