题目难易程度: Easy
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
思路:通过题意理解得到:输入的字符串列表中,每个字符串都必须有一个共同的前缀字符串,若字符串的同位置上的字符与其他字符串上字符不等时,就返回公共前缀,否则继续。
解题代码如下,执行效率与存储空间需要进行优化,以下是按照最常规思路编写。
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if strs:
strs_min_str = sorted(strs, key=lambda x:len(x))[0]
sum_str = ''
for i in range(len(strs_min_str)):
for y in strs:
if strs_min_str[i] == y[i]:
pass
else:
return sum_str
sum_str += strs_min_str[i]
return sum_str
return ''