首页 > 编程语言 >[算法题python]14. 最长公共前缀

[算法题python]14. 最长公共前缀

时间:2023-08-02 15:37:10浏览次数:46  
标签:zip 14 迭代 python 元组 strs 输入 前缀

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

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

 

示例 1:

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

示例 2:

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

 

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

 

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        s = ""
        for i in zip(*strs):
            if  len(set(i)) == 1:
                s += i[0]
            else:
                break
        return s

解题思路:

摘自python3.8的官方文档

zip(*iterables)

创建一个聚合了来自每个可迭代对象中的元素的迭代器。 返回一个元组的迭代器,其中的第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素。 当所输入可迭代对象中最短的一个被耗尽时,迭代器将停止迭代。 当只有一个可迭代对象参数时,它将返回一个单元组的迭代器。 不带参数时,它将返回一个空迭代器。

例如输入的是:

["flower","flow","flight"]
 

在zip里的for循环打印出i是这样的

('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
 

也就是官方文档所说的“其中的第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素”

为什么只迭代到 ('o', 'o', 'i') 呢?

是因为“当所输入可迭代对象中最短的一个被耗尽时,迭代器将停止迭代”

最后再利用 set 的key不重复的特性进行判断

标签:zip,14,迭代,python,元组,strs,输入,前缀
From: https://www.cnblogs.com/10086upup/p/17600778.html

相关文章

  • 【题解】Luogu[P2296] [NOIP2014 提高组] 寻找道路
    Link很简单的一道图论题。要在一个有向图上找一条\(s\)到\(t\)的最短路,要求这条路径上的所有点都满足:该点的所有出边所连点都能到达终点\(t\)。看上去很乱,我们简单分解一下,先在所有点中找到与终点有路径的点集\(A\)进行标记,再再所有点中找到其所有出边所连点都被打上标......
  • python3 压缩图片到合理范围
    importosfromPILimportImagefromPILimportImageFileimportimghdrdefcompress_image(outfile,mb=200,quality=85,k=0.9):#修改mb大小,就是想要设定的压缩后的大小。"""不改变图片尺寸压缩到指定大小:paramoutfile:压缩文件保存地址:parammb:压缩目标,KB:pa......
  • 关于命令行运行python 报错的问题
    装好python以后,想看看是不是装好了,能否运行,在命令行中输入python以后,蹦出来这么一个东西:看这意思是环境变量没有配置好,但是很奇怪,在装的时候我是勾上了添加环境变量的呀,没办法,智能求助于度娘,网上说是要添加PYTHONHOME和PYTHONPATH两个环境变量,然后怎么怎么操作,但是我尝试后发现......
  • Python爬虫爬取B站评论区
    写了两天,参考其他大牛的文章,摸着石头过河,终于写出了一个可以爬B站评论区的爬虫,人裂了……致谢:致谢:SmartCrane马哥python说该程序具有以下功能:①输入B站视频链接,即可爬取B站评论区评论、IP、ID、点赞数、回复数,并保存在当前目录的以视频名字为标题的csv文件中。②由视频链......
  • python最简单的传参方法-第一次见这种方法
    我又一个python文件,名为grounding_dino_demo.py,其代码为:fromgroundingdino.util.inferenceimportload_model,load_image,predict,annotate,Modelimportcv2CONFIG_PATH="GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py"CHECKPOINT_PATH=&......
  • 一周学会python1-开始
    1Python简介Python是一种相当流行(而且简单易学)的高级编程语言。本书将以直观的方式向你传授Python。即使你没有任何编程语言的经验,也能掌握Python的基础知识并加以运用。1.1什么是Python?Python一种高级编程语言,在编程界非常流行。它简单、通用,并包含大量第三方框架库。它......
  • SIT1145AQ 带选择性唤醒及故障保护的低功耗 CAN FD 总线收发器
    ➢符合ISO11898-2:2016和SAEJ2284-1至SAEJ2284-5标准➢拥有低功耗休眠模式以及待机模式➢支持标准CAN唤醒帧的远程唤醒,兼容ISO11898-2:2016标准的选择性唤醒帧远程唤醒➢唤醒源诊断识别功能➢总线端口±58V耐压➢±12V接收器共模输入电压➢IO口支......
  • python3 install 其他包 报:ModuleNotFoundError: No module named '_ctypes' 的问题
    python3install其他包报:ModuleNotFoundError:Nomodulenamed'_ctypes'的问题python2import_ctypes没有问题python3import_ctypes报上述错误,说明_ctypes确实无法导入。据网上资料显示时没有安装libdiff库,但使用yum安装后,还需要重新编译python3。但python3好......
  • 安装python误操作影响yum报错处理
    一,如图:yum时报:liblber-2.4.so.2:cannotopensharedobjectfile:Nosuchfileordirectory二,是因为缺少一个包:openldap-xxxx.el7_6.x86_64.rpm(注意不同版本的linux系统有不同XX版的包)三,在官网找到对应版本的openldap包:http://ftp.pbone.net/mirror/ftp.scientificlinux......
  • python写入mongodb时间字段格式为ISO
     #!/usr/bin/envpython#coding=utf-8importtimefromdateutilimportparserfrompymongoimportMongoClientnow=parser.parse(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))conn=MongoClient("192.168.1.135:28001",maxPoo......