LeetCode题解(python)
14. 最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
解题心得
本题主要是平行搜索,基本思路是取第一个字符串,依次搜索所有字符串的同一位置的字符是否相同即可。
当然,python有专门的commonprefix方法
时间复杂度: O ( m n ) O(mn) O(mn),其中m为字符串的平均长度,n为列表中字符串的个数
解题代码
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
rel = ""
if len(strs)==0:
return ""
for i in range(len(strs[0])):
for j in strs:
if len(j)>i:
if strs[0][i] == j[i]:
continue
else:
return rel
else:
return rel
rel = rel+strs[0][i]
return rel
或者python一句话:
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
return os.path.commonprefix(strs)