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

【python简易小程序设计】寻找字符串的最长共有前缀并输出

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

【python简易小程序设计】寻找字符串的最长共有前缀并输出

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
  • 一、题目
  • 二、设计思路
  • 三、演示结果
  • 总结


前言

参加python小课堂的挑战题。


一、题目

二、设计思路

首先我们需要输入数据并将数据存储在列表中,我们可以看到题目中有提示> “a b”.split(" ") == [“a”, “b”]。运用这个提示我们可以将用空格分隔开的字符串分别储存在列表中。

arr1 = input().split(" ")

寻找最长共同前缀我们只需要先确定字符串中的最短长度,这样可以节省很多时间。然后再各行扫描,好了我不想打了,直接把代码贴出来。

arr1 = input().split(" ")
arr2 = list()
sum = len(arr1)
least = 1000  # 输入的字符串中的最短长度,初始设定较大以便后续赋值
num = 0  # 共有前缀的字数
i = 0
j = 0
# 确定字符串中的最短长度
while i < sum:
    if least > len(arr1[i]):
        least = len(arr1[i])
    i += 1
i = 0
if sum == 1:  # 如果只输入一个字符串,那么直接输出该字符串
    print(arr1[0])
else:  # 如果超过一个字符串,则横向比较字符
    while arr1[i][j] == arr1[i+1][j]:  # 从i=0到i=sum-1开始比较第一个字符
        if i < sum - 2 and j < least:
            i += 1
        else:
            arr2 = arr1[i][:j+1]  # 将已扫描过的字符赋给arr2
            i = 0
            j += 1
            num += 1
    if num == 0:  # 没有共有前缀
        print("NOT FOUND")
    else:
        print(arr2)

三、演示结果



总结

比掷色子稍微难一点,但是也不是太难。

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

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

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