Young87

当前位置:首页 >个人收藏

LeetCode.14 最长公共前缀(python解法)

题目

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

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

示例 1:

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

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

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

solution_1

思路:用zip函数将所有字符串按顺序组成一个个tuple,再将每一个tuple变为set,如果set的长度为1,说明该位置的字符是公共字符。
结果:执行用时:20 ms
排名:战胜92.84%

代码如下

class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        strs_zip = list(zip(*strs))
        s = [len(set(c)) == 1 for c in strs_zip] + [0]  # 加0防止溢出
        r = s.index(0)
        if strs == []:
            return ''
        else:
            return strs[0][:r]

参考资料

最长公共前缀

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 【精华】非科班通往计算机之路的书籍天梯推荐

下一篇: 矩阵中的主元是什么意思(在消去过程中起主导作用的元素)

精华推荐