求一批字串的最長公共字首

2021-09-02 20:00:30 字數 1340 閱讀 7150

思路一:這個題一拿到手,第一反應就是以第乙個字串strs[0]為標準,如果其他字串的第乙個字元和str[0]的第乙個字串相同,則再比較第二個字串,以此類推直到出現不同為止。

def longestcommonprefix(self, strs):

""":type strs: list[str]

:rtype: str

"""if not strs:

return ""

first_str = strs[0]

other_strs = strs[1:]

prefix = ""

for i in first_str:

prefix += i

for s in other_strs:

if not s.startswith(prefix):

return prefix[:-1]

return prefix

思路二:第二種方法,就是先比較前兩個字串,求出他們的最長公共字首,再用這個字首去跟第三個字串比較求出新的公共字首,以此類推

class solution(object):

def longestcommonprefix(self, strs):

""":type strs: list[str]

:rtype: str

"""if not strs:

return ""

if len(strs) == 1:

return strs[0]

prefix = strs[0]

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

if not prefix:

return ""

prefix = self.getcommonprefix(prefix,strs[i+1])

return prefix

#先定義乙個函式求出兩個字串的最長公共字首

def getcommonprefix(self,str1,str2):

if not str1 or not str2:

return ""

prefix = ""

for s in str1:

prefix += s

if not str2.startswith(prefix):

return prefix[:-1]

return prefix

不過測試了一下,第一種方法還要快一點。

挑戰字串 最長公共字首

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

python 字串最長公共字首

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

字串最長公共字首問題

leetcode練題筆記第二篇 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 橫向掃瞄...