一、题目
- 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
说明:
所有输入只包含小写字母 a-z 。
二、
1.水平扫描
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs) == 0:
return ''
result = strs[0]
for i in range(1, len(strs)):
while strs[i].find(result) != 0 :
result = result[:-1]
return result
2.垂直扫描
- zip()
- zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
nums = [‘flower’,‘flow’,‘flight’]
for i in zip(*nums):
print(i)输出结果
(‘f’, ‘f’, ‘f’)
(‘l’, ‘l’, ‘l’)
(‘o’, ‘o’, ‘i’)
(‘w’, ‘w’, ‘g’)
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ""
for i in zip(*strs):
if len(set(i)) == 1:
result += i[0]
else:
break
return result