LeetCode:(14. 最长公共前缀!!!!!)

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

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

示例 1:

输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:

输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。

解题思路:
1.简单点来说,这道题可以用集合set(),集合的性质可以去掉重复的。
2.还会用到zip()函数,文章后面会有介绍~~~~~~
Python的代码:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        none = ""
        if len(strs) == 0:
            return ""
        for a in zip(*strs):
            if len(set(a)) == 1:
                none += a[0]
            else:
                return none
        return none

运行结果:
在这里插入图片描述

zip()函数:

zip()函数的定义:
从参数中的多个迭代器取元素组合成一个新的迭代器;
返回:
返回一个zip对象,其内部元素为元组;可以转化为列表或元组;
传入参数:
元组、列表、字典等迭代器。
zip()函数的用法:
当zip()函数中只有一个参数时,zip(iterable)从iterable中依次取一个元组,组成一个元组。
例子:

#zip()函数单个参数
list1 = [1, 2, 3, 4]
tuple1 = zip(list1)
#打印zip函数的返回类型
print("zip()函数的返回类型:\n", type(tuple1))
# 将zip对象转化为列表
print("zip对象转化为列表:\n", list(tuple1))

输出结果:
zip()函数的返回类型:
<class ‘zip’>
zip对象转化为列表:
[(1,), (2,), (3,), (4,)]

猜你喜欢

转载自blog.csdn.net/Kinght_123/article/details/109287672