LeetCode第14题:最长公共前缀
题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
- 示例 1:
输入:["flower","flow","flight"]
输出:"fl"
- 示例 2:
输入:["dog","racecar","car"]
输出:""
解释: 输入不存在公共前缀。
说明: 所有输入只包含小写字母 a-z 。
代码:
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
res = ''
# 排除特殊情况
if len(strs) == 0:
return res
if len(strs) == 1:
return strs[0]
min_length = len(strs[0])
# 找到最短的字符串,确定循环次数
for i in range(1, len(strs)):
if len(strs[i]) < min_length:
min_length = len(strs[i])
for i in range(min_length):
tmp_char = strs[0][i]
# 用每个字符串的第i个元素和第0个字符串的第i个元素对比
for j in range(1, len(strs)):
# 不等则清除tmp_char并结束
if strs[j][i] != tmp_char:
tmp_char = ""
if tmp_char == "":
break
res += tmp_char
return res
自己写的太烂了,cp个范例。。。
本文链接:时光不写博客