-
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串
""
。1 -
示例:
# 示例 1
输入:strs = ["flower","flow","flight"]
输出:"fl"
# 示例 2
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
- 解法:
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
strs.sort()
temp = min(strs)
longest_str = min(len(strs[0]), len(strs[-1]))
for i in range(longest_str):
if strs[0][i] != strs[-1][i]:
return strs[0][:i]
return temp
- 思路:
- 将
strs
依照字母的顺序排序,最后的字符串一定是最长的,最好的情况是长度最小的字符串为最长公共前缀。 - 将最小的字符串长度算出来并遍历,如果两个字符串不相等,则返回前面相等的字符串,返回的结果为最长公共前缀。
- 当
strs
中只有一个空字符串或者只有一个字符串时,是用找到strs
中长度最短的值来返回。
- 问题: 没有考虑到当输入空字符串时,返回的是
null
。当strs
中只有一个空字符串或者只有一个字符串时,是用找到strs
中长度最短的值来返回。