14 最長公共字首

2021-09-20 10:32:53 字數 1935 閱讀 6300

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

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

示例 1:

輸入: ["flower","flow","flight"]

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共字首。

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

class solution(object):

def longestcommonprefix(self, strs):

""":type strs: list[str]

:rtype: str

"""res = ""

if len(strs) == 0:

return ""

# zip()函式用於將可迭代物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表

for each in zip(*strs):

# 利用集合建立乙個無序不重複元素集

if len(set(each)) == 1:

res += each[0]

else:

return res

return res

if __name__ == '__main__':

s = solution()

strs = list(map(str,input().split()))

res = s.longestcommonprefix(strs)

print(res)

收穫:

nums = ['flower','flow','flight']

for i in zip(*nums):

print(i)

輸出結果:

不用自帶函式解法

# -*- coding: utf-8 -*-

class solution(object):

def longestcommonprefix(self,strs):

""":type strs: list[str]

:rtype: str

"""

if len(strs) == 0:

return ""

res = ""

temp = strs[0]

for s in strs:

if len(temp) > len(s):

temp = s

for i in range(len(temp)):

for j in range(len(strs)):

if strs[j][i] != temp[i]:

return res

res += temp[i]

return res

if __name__ == "__main__":

s = solution()

strs = list(map(str,input().split()))

print(s.longestcommonprefix(strs))

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...