首页 > 编程语言 > 详细

python找出最长公共前缀

时间:2021-09-03 22:36:10      阅读:20      评论:0      收藏:0      [点我收藏+]
#找出最长公共前缀
strs = ["dog","racecar","car"] #"" strs = ["flower","flow","flight"] #"fl"
方法一:
lenstrs=[]
for i in strs:
    lenstrs.append(len(i))
lenstrs=sorted(lenstrs,reverse=False)
print(lenstrs[0])
strlistzong=[]
#3 代表列表中最短的字符串
for j in range(3):
    strlist = []
    for i in strs:
        strlist.append(i[j])
    strlist=sorted(strlist)
    if strlist[0]==strlist[-1]:
        strlistzong.append(strlist[0])
print(‘‘.join(strlistzong))

 方法二:

 

def longestCommonPrefix(strs):
    if not strs: return ""
    #s1是从小到头排序 s2从大到小排序
    s1 = min(strs)
    s2 = max(strs)
    for i, x in enumerate(s1):
        # i是索引  x是数据  
        print(i,x)
        if x != s2[i]:
            return s2[:i]
    return s1
print(longestCommonPrefix(strs))        

 方法三:

#zip 组成2维数组
print(list(zip(*strs)))
#去重
setstrs=list(map(set,(zip(*strs))))
print(setstrs)
resstrs=‘‘
for x in setstrs:
    if len(list(x))==1:
        resstrs += list(x)[0]
print(resstrs)

  

python找出最长公共前缀

原文:https://www.cnblogs.com/ljf520hj/p/15218265.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!