LeetCode百题14.最长公共前缀 Python3

@LeetCode

LeetCode百题14.最长公共前缀

题目

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

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

示例

输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”

解析

利用python的zip函数,把str看成list然后把输入看成二维数组,左对齐纵向压缩,然后把每项利用集合去重,之后遍历list中找到元素长度大于1之前的就是公共前缀。

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

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

代码

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        str1=''
        zipped = zip(*strs)
        l1 = list(zipped)
        for i in l1:
            if len(set(i)) == 1:  # 集合长度为1,即只有一个相同元素
                str1 += i[0]
            else:
                break
        return str1
            

运行结果

结果图

猜你喜欢

转载自blog.csdn.net/weixin_45818370/article/details/123857301
今日推荐