LeetCode热题100-最长公共前缀

这个题不是官网上热题100范围,因为这题也经常考所以放到这里。

这个其实思路相对固定,就是假设第1个元素为最长公共前缀,因此和其他元素比较得出最长公共前缀。

python 复制代码
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        
        first_str = strs[0]

        for i in range(len(first_str)):
            for j in range(1,len(strs)):
                if first_str[i] != strs[j][i]:
                    return first_str[0:i]
        
        return first_str
        

上面存在一个bug是strsji可能存在数组越界风险,官方可以的测试用例比较简单,所以没出现报错,可看下面的代码。

python 复制代码
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        
        for i in range(len(strs[0])):
            ch = strs[0][i]
            for s in strs[1:]:
                if i < len(s) and ch != s[i]:
                    return strs[0][:i]
        return strs[0]
python 复制代码
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        
        prefix = strs[0]

        for s in strs[1:]:
            while not s.startswith(prefix):
                prefix = prefix[:-1]
                if not prefix:
                    return ""
        return prefix
相关推荐
nm_zfyjt13 分钟前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one1 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼2 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记3 小时前
C++ 智能指针的使用及其原理详解
c++·算法
AiNightVision6 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.3337 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君6588 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
axe_hu8 小时前
AI产品经理的职业规划与学习路径
人工智能·职场和发展·产品经理·学习方法
JJJennie7778 小时前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图
算法·gateway·ai网关·魔芋ai