题目
要点
其实本题是找所有一个列表中所有元素的公共子集,也就是最小是空集(""),最大是最短元素。那我们则需要比较最小长度的元素和最大长度的元素,看它们有多少相同。
解题
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)
About me: 资深大猪蹄子
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)