題目描述:
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串""
。
示例 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...