当前位置:   article > 正文

【python实现】最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。_编写一个函数,该函数可以接受任意数量的字符串参数,并返回他们的最长公共前缀

编写一个函数,该函数可以接受任意数量的字符串参数,并返回他们的最长公共前缀

题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。

说明:
所有输入只包含小写字母 a-z 。

解答:

class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if len(strs) == 0:
            return ''
        elif len(strs) == 1:
            return strs[0]
        else:
            b = sorted(strs, key=lambda x:len(x))	#按字符串的长度进行排序
            s = ''
            s1 = b[0]
            for i, v in enumerate(s1):	#对第一个字符串进行枚举,遍历其每一个字符
                l = []
                for j in b[1:]:			#从第二个字符串开始遍历之后的所有字符串
                    l.append(v==j[i])	#将字符比较的bool值添加到列表l中
                if all(l):				#如果列表l中的所有值都为True
                    s += v
                else:
                    break
        return s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

思路:
先按照字符串的长度对列表中的元素进行排序,然后根据第一个字符串(也就是长度最短的字符串),遍历其每一个字符,并将其每一个字符与之后的所有字符串分别进行比较,求得相同的字符。

用到的知识点:
函数sorted():对列表进行临时排序,能够按特定顺序显示列表元素,同时不影响它 们在列表中的原始排列顺序

函数lambda():其形式为 lambda argument_list: expression
其中,lambda是Python预留的关键字,argument_list和expression由用户自定义。这里的expression是一个关于参数的表达式。表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。
输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值

函数enumerate():可以将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

方法append():在列表末尾添加元素,而不影响列表中的其他所有元素。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/209433
推荐阅读
相关标签
  

闽ICP备14008679号