leetcode用zip方法求最长公共前缀

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

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

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

采用python中zip()方法

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        #采用zip()方法
        s=''
        for i in zip(*strs):#zip(["flower","flow","flight"])=[('f', 'f', 'f'), ('l', 'l', 'l'), ('o', 'o', 'i'), ('w', 'w', 'g')]
            if len(set(i))==1:
                s=s+i[0]
            else:
                break
        return s

python中zip()方法介绍:

zip()是python的内置函数,zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

若各个迭代对象的元素个数不一致,则以最短的对象为主,举例:

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

猜你喜欢

转载自www.cnblogs.com/xiao-longxia/p/12511710.html