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

目录

  • 题目
  • solution_1
  • 参考资料

题目

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

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

示例 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]

参考资料

最长公共前缀

你可能感兴趣的:(LeetCode刷题记录,LeetCode,python,数据结构与算法)