栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python每日一练(最长公共前缀)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python每日一练(最长公共前缀)

我们先来看问题:

我们先对题目进行分析,首先我们知道的是,如果字符串为空。那么输出 “”,如果字符串不为空,那么我们的想法就是,一一进行匹配,这里我们就需要了解几个函数。
首先我们要了解zip函数,python中的zip是将不同列表中的元素进行一一对应,例如:
a=[1,2,3],b=[2,3,4]
那么list(zip(a,b))的结果就是[(1,2),(2,3),(3,4)]
还有一个函数就是set函数,set函数表示交集的意思,假如说(a,b,c)的交集就是(a,b,c),(a,b,b)的交集就是(a,b)
,(a,a,a)的交集就是(a)。
我们有了这种准备后开始写代码

strs = ["flower","flow","flight"]
result=''
for i in list(zip(*strs)):#这里面的*号表示把strs中的每一个元素都看成一个整体。
    if len(set(i))==1:
    #根据上方所讲,如果都相同那么交集的长度就是1
       result+=i[0]#此时取出相同的那个元素
    else:
       break#如果不同,直接退出循环
return result

这种方法对比于暴力解法要更加简洁明了,我们在日常学习中要多注意函数的应用方法!!!

笨鸟先飞!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号