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

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

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

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


前言

参加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)

三、演示结果



总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/942286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-18
下一篇2022-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存