题目

要点

其实本题是找所有一个列表中所有元素的公共子集,也就是最小是空集(""),最大是最短元素。那我们则需要比较最小长度的元素和最大长度的元素,看它们有多少相同。

解题

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs: return ""               #如果没有元素,返回空集
        min_letter = min(strs)               #最小元素
        max_letter = max(strs)               #最大元素
        for i, x in enumerate(min_letter):
            if x != max_letter[i]:
                return min_letter[:i]        #返回最小元素的最大子集长度
        return min_letter                    #最大元素的一部分和最小元素全部相等时,返回最小元素

复杂度

时间复杂度:O(min_letter)
空间复杂度: O(n)

posted on 2021-02-25 10:15  eryoung2  阅读(45)  评论(0编辑  收藏  举报