最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

输入: ["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

 

posted @ 2020-07-27 10:33  小龙虾爱大龙虾  阅读(174)  评论(0)    收藏  举报