leetcode14. 最长公共前缀

155 阅读1分钟

14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""

所有输入只包含小写字母 a-z

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

思路

class Solution:
    def longestCommonPrefix(self, strs):
        # :type strs: List[str]
        # :rtype: str
        res = ""
        for tmp in zip(*strs):  # zip()函数将原列表解压
            if len(set(tmp)) == 1:  # 利用集合判断每个元素是否相同
                res += tmp[0]
            else:
                break
        return res
"""
取每一个单词的同一位置的字母,看是否相同。
利用python的zip函数,把str看成list然后把输入看成二维数组,
左对齐纵向压缩,然后把每项利用集合去重,取单元素集合的第一个元素
nums = ['flower','flow','flight']
for i in zip(*nums):
    print(i)    i
('f', 'f', 'f') 0
('l', 'l', 'l') 1
('o', 'o', 'i') 2
('w', 'w', 'g') 3
"""