题目:
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解题思路:
1.简单点来说,这道题可以用集合set(),集合的性质可以去掉重复的。
2.还会用到zip()函数,文章后面会有介绍~~~~~~
Python的代码:
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
none = ""
if len(strs) == 0:
return ""
for a in zip(*strs):
if len(set(a)) == 1:
none += a[0]
else:
return none
return none
运行结果:
zip()函数:
zip()函数的定义:
从参数中的多个迭代器取元素组合成一个新的迭代器;
返回:
返回一个zip对象,其内部元素为元组;可以转化为列表或元组;
传入参数:
元组、列表、字典等迭代器。
zip()函数的用法:
当zip()函数中只有一个参数时,zip(iterable)从iterable中依次取一个元组,组成一个元组。
例子:
#zip()函数单个参数
list1 = [1, 2, 3, 4]
tuple1 = zip(list1)
#打印zip函数的返回类型
print("zip()函数的返回类型:\n", type(tuple1))
# 将zip对象转化为列表
print("zip对象转化为列表:\n", list(tuple1))
输出结果:
zip()函数的返回类型:
<class ‘zip’>
zip对象转化为列表:
[(1,), (2,), (3,), (4,)]