【python练习9】leetcode14. 最长公共前缀

1. 题目


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

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

示例 1:

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

示例 2:

输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。

2. 代码


class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        s1=''
        for s in zip(*strs):
            s_set=set(s)#利用元组不重复特性
            if len(s_set)==1:
                s1+=s[0]
            else:
                break
        return s1

3. 总结


1)比较每个元素中相同位置的元素

2)使用 zip(*) 函数迭代

zip():将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。(如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同)

1.举例代码
a=[1,3]
b=[2,4]
c=[5,6]
print(list(zip(a,b,c)))
2.执行结果
[(1, 2, 5), (3, 4, 6)]

zip(*):与zip()相反

1.举例代码
strs = ["cir", "car"]
print(list(zip(*strs)))
2.执行结果
[('c', 'c'), ('i', 'a'), ('r', 'r')]

1.举例代码
strs = [(1,2),(3,4),(5,6)]
print(list(zip(*strs)))
2.执行结果
[(1, 3, 5), (2, 4, 6)]

猜你喜欢

转载自blog.csdn.net/weixin_46069582/article/details/113891808