LeetCode.14 最长公共前缀(python解法)
日期: 2019-10-05 分类: 个人收藏 376次阅读
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 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
精华推荐