编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
输入: ["flower","flow","flight"] 输出: "fl"
利用python的Zip函数,zip()函数接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),返回由这些元组组成的list列表,如果传入的参数的长度不等,则返回的list列表的长度和传入参数中最短对象的长度相同。举例说明:
x = [1,2,3,4,5] y = [‘a‘,‘b‘,‘c‘,‘d‘] xy = zip(x,y) print xy for a,b in zip(x,y): print a print b
输出:
[(1, ‘a‘), (2, ‘b‘), (3, ‘c‘), (4, ‘d‘)] 1 a 2 b 3 c 4 d
zip(*iterable)使用说明:
ll = ["flower", "flow", "flqwe"] zip(*ll) 返回的结果是什么呢?
1、*xx
在调用函数的时候是解包作用,因此:*ll ==> "flower", "flow", "flqwe"
2、 zip(*ll) ==> zip("flower", "flow", "flqwe")这跟zip(a, b)没什么两样
则本题的解法可以用zip函数结合set实现:
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: s=‘‘ for i in zip(*strs): if len(set(i))==1: s=s+i[0] else: break return s
原文:https://www.cnblogs.com/xiao-longxia/p/13384089.html