题目:
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解题思路:
1.简单点来说,这道题可以用集合set(),集合的性质可以去掉重复的。
2.还会用到zip()函数,文章后面会有介绍~~~~~~
Python的代码:
1class Solution: 2 def longestCommonPrefix(self, strs: List[str]) -> str: 3 none = "" 4 if len(strs) == 0: 5 return "" 6 for a in zip(*strs): 7 if len(set(a)) == 1: 8 none += a[0] 9 else: 10 return none 11 return none
运行结果:

zip()函数:
zip()函数的定义:
从参数中的多个迭代器取元素组合成一个新的迭代器;
返回:
返回一个zip对象,其内部元素为元组;可以转化为列表或元组;
传入参数:
元组、列表、字典等迭代器。
zip()函数的用法:
当zip()函数中只有一个参数时,zip(iterable)从iterable中依次取一个元组,组成一个元组。
例子:
1#zip()函数单个参数 2list1 = [1, 2, 3, 4] 3tuple1 = zip(list1) 4#打印zip函数的返回类型 5print("zip()函数的返回类型:\n", type(tuple1)) 6# 将zip对象转化为列表 7print("zip对象转化为列表:\n", list(tuple1))
输出结果:
zip()函数的返回类型:
<class ‘zip’>
zip对象转化为列表:
[(1,), (2,), (3,), (4,)]