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"]))
相关推荐
数据法师5 分钟前
QuickSay :基于 Qt 的轻量级快捷短语管理工具
开发语言·qt
caimouse19 分钟前
Reactos 第1章 概述
c语言·开发语言·架构
.千余28 分钟前
【C++】C++继承入门(下):友元、静态成员与菱形继承的底层逻辑
开发语言·c++·笔记·学习·其他
财经资讯数据_灵砚智能29 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月10日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
namexingyun34 分钟前
拆解Fable 5三重安全护栏:模型路由、蒸馏防护与生物安全分类器的技术原理 - 微元算力(weytoken)
java·人工智能·python·安全·架构·ai编程
小短腿的代码世界36 分钟前
行情快照与增量更新引擎:Qt在高频交易数据分发中的核心架构——你的行情推送为什么延迟了500ms?
开发语言·qt·架构
初中就开始混世的大魔王41 分钟前
6 Fast DDS-传输层
开发语言·c++·中间件·信息与通信
chenment1 小时前
别再为每个模型单独写一套队列了:用 200 行代码封装多模态统一调用层
人工智能·python·产品
啊森要自信1 小时前
【GUI自动化测试】控件、鼠标键盘操作与多场景自动化
c语言·开发语言·python·adb·ipython
YJlio1 小时前
《Sysinternals实战指南》16.5 Ctrl2Cap 工具详解:把 Caps Lock 变成 Ctrl 的键盘改造与回退方法
linux·运维·服务器·网络·python·学习·计算机外设