Python|蓝桥杯之最长公共前缀

问题描述

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

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

示例 1:

输入:["flower","flow","flight"]

输出: "fl"

示例 2:

输入:["dog","racecar","car"]

输出: ""

解释: 输入不存在公共前缀。

解决方案

很容易想到的是我们将第一个字符串A和第二个字符串B求公共前缀,然后在和第三个字符串C求公共前缀,最终得到最长公共前缀。解题重点是求两个字符串求公共前缀。比较常见的想法是如果这两个字符串的第一个字符相同则记录第一个字符,第二个相同则增加第二个,直到出现不同的字符串。但是在这个思路上有一个难点,我们在和C串求前缀的时候,会重新从第一个字符开始记录,增加不必要的计算。第二个思路就是将A串作为前缀,如果与B串前面字符不同,则去掉最后一个字符重新和B串匹配,直到字符完全匹配B串,在python中,s=s[:-1]很容易去掉最后一个字符。

代码如下:

在代码中要用到find函数,Pythonfind()方法检测字符串中是否包含子字符串str如果指定开始和结束范围,则检查是否包含在指定范围内。

结语

这个问题用到了字符串的检测,通过列表中元素一一比对,查找相同的前缀,如果与B串前面字符不同,则去掉最后一个字符重新和B串匹配,直到字符完全匹配B串。

主编:王楠岚

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • # 02 公共前缀问题

    A 思想 前缀: 对题目所给数组进行排序(Array.sort) 设立一个哨兵字符,默认为false(用来判断是否有必要遍历下去) 设置字符串str,默认为""(来拼接每次遍历得到 ...

  • 面试题-python3 查找字符串数组中的最长公共前缀

    python测开笔试题 python测开笔试题:编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "" 输入: ["flower" ...

  • Python | 蓝桥杯-幸运数字的解决方法

    问题描述 到x星球旅行的游客都被发给一个整数,作为游客编号.x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 前10个幸运数字是:3 ...

  • Python|蓝桥杯真题-单词分析

    问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度.小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个 ...

  • ​LeetCode刷题实战14: 最长公共前缀

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • Python | 2020蓝桥杯真题-寻找2020

    问题描述小蓝有一个数字矩阵,里面只包含数字 0 和 2.小蓝很喜欢 2020,他想找到这个数字矩阵中有多少个 2020 .小蓝只关注三种构成 2020 的方式:· 同一行里面连续四个字符从左到右构成 ...

  • Python|2020年蓝桥杯:蛇形填数

    问题描述如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵.1 2 6 7 15 -3 5 8 14 -4 9 13 -10 12 -11 --(1)容易看出矩阵第二行 ...

  • Python|2020蓝桥杯真题-跑步训练

    引言蓝桥杯是国内始终领跑的人才培养选拔模式并获得行业深度认可的IT类科技竞赛.问题描述小明要做一个跑步训练.初始时,小明充满体力,体力值计为 10000.如果小明跑步,每分钟损耗600 的体力.如果小 ...

  • Python|2018蓝桥杯真题练习—哪天返回

    问题描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文.他决定在x星战打工.好心的老板答应包食宿,第1天给他1元钱.并且,以后 ...

  • Python|2018蓝桥杯--字母列阵

    前言在语言的学习中我们经常会遇到关于列阵的问题,而字母列阵就是其中的常见的一种.问题描述仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:"LANQIAO".SLANQIA ...