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 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法
en.en..6 小时前
C语言 标准输入 / 输出缓冲区
算法
吃好睡好便好8 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球8 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
靠沿10 小时前
贪心算法专题(二)
算法·贪心算法
猎头南楼10 小时前
具身智能模型部署方向的能力要求与技术栈梳理
人工智能·深度学习·算法
啥都想学点的研究生11 小时前
一篇文章讲清楚:线性回归问题的求解——正规方程法
算法·机器学习·线性回归
青少儿编程课堂11 小时前
树状数组精讲:逆序对计数与离散化(附双语言解法)
算法·树状数组·离散化·信息学奥赛·逆序对
血小板要健康12 小时前
网格 dfs 与 FloodFill:从岛屿、区域到搜索路径
笔记·算法·leetcode·深度优先
VALENIAN瓦伦尼安教学设备12 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法