最長公共字首

2021-09-11 10:21:30 字數 1612 閱讀 7501

題目描述:

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

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

示例 1:

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

輸出: "fl"

示例 2:

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

輸出: ""

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

class solution:

def longestcommonprefix(self, strs):

if not strs:

return ""

for i, letter_group in enumerate(zip(*strs)):

if len(set(letter_group)) > 1:

return strs[0][:i]

else:

return min(strs)

學習筆記:

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

如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組解壓為列表。

例1:

a = [1, 2, 3]

b = [4, 5, 6]

c = [7, 8]

print(zip(a))

print(zip(a, c))

print(zip(a, b, c))

print(zip(*zip(a, b, c)))

輸出:

[(1,), (2,), (3,)]

[(1, 7), (2, 8)]

[(1, 4, 7), (2, 5, 8)]

[(1, 2), (4, 5), (7, 8)]

例2:

str = ["adjglj","djracecar","cdjcar"]

print(zip(str))

print(zip(*str))

輸出:

[('adjglj',), ('djracecar',), ('cdjcar',)]

[('a', 'd', 'c'), ('d', 'j', 'd'), ('j', 'r', 'j'), ('g', 'a', 'c'), ('l', 'c', 'a'), ('j', 'e', 'r')]

enumerate() 函式用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標。

例1:

str = ["adjglj","djracecar","cdjcar"]

for i, element in enumerate(str):

print(i)

print(element)

輸出:

0adjglj

1djracecar

2cdjcar

最長公共字首

描述 給k個字串,求出他們的最長公共字首 lcp 樣例 在 abcd abef 和 acef 中,lcp 為 a 在 abcdefg abcefg abcefa 中,lcp 為 abc 新知識點 vectorstrs既可以是一維的,也可以是多維的。在這裡講解三維的初始化。vector str str...

最長公共字首

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

最長公共字首

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