Python每日一练---第十八天:最长公共前缀

前言📢📢

Python每日一练来啦,本文已收录于:《Python每日一练》专栏

此专栏目的在于,帮忙学习Python的小白提高编程能力,训练逻辑思维,持续更新中,欢迎免费订阅!!!
*

1. 问题描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: strs = "flower","flow","flight"输出:"fl"

示例 2:

输入: strs = "dog","racecar","car"输出: ""**解释:**输入不存在公共前缀。

提示:

  • 1 <= strs.length <= 200

  • 0 <= strsi.length <= 200

  • strsi 如果非空,则仅由小写英文字母组成

2. 问题分析

公共前缀 :所有字符串都从开头开始相同的部分

  • 必须是从第一个字符开始的连续相同字符

  • 一旦出现不匹配,后面的部分就不再考虑

3. 算法思路

  • 公共前缀的长度不会超过最短字符串的长度

  • 公共前缀是所有字符串的公共部分,不是某两个字符串的

  • 一旦某个位置字符不匹配,搜索就可以终止

4. 代码实现

python 复制代码
from typing import List


class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""

        # 以第一个字符串作为初始前缀
        prefix = strs[0]

        # 与后续每个字符串比较
        for i in range(1, len(strs)):
            # 不断缩短前缀,直到找到当前字符串的前缀
            while strs[i].find(prefix) != 0:
                prefix = prefix[:-1]
                if not prefix:
                    return ""

        return prefix

if __name__ == '__main__':
    print(Solution().longestCommonPrefix(["flower","flow","flight"]))
相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github