题目

要点

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

解题

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   eryoung2  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示