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
相关推荐
强哥聊算力5 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
西柚小萌新8 小时前
【岗位面试】--成都博维数孪 - 工业 AI 解决方案顾问
人工智能·面试·职场和发展
小 黄 鸡8 小时前
Flutter 面试必会知识点详解(从基础到进阶)
flutter·面试·职场和发展
Navigator_Z9 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
CCblandy9 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
mmmmath_310 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
YangYang9YangYan11 小时前
2027供应链计划校招:数学与应用数学专业如何把预测模型讲成业务决策?
人工智能·sql·算法
jsjzsl211 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
程序员清风11 小时前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
梦帮科技11 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法