0
点赞
收藏
分享

微信扫一扫

leetcode--最长公共前缀

  • 题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""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
  • 思路:
  1. strs依照字母的顺序排序,最后的字符串一定是最长的,最好的情况是长度最小的字符串为最长公共前缀。
  2. 将最小的字符串长度算出来并遍历,如果两个字符串不相等,则返回前面相等的字符串,返回的结果为最长公共前缀。
  3. strs中只有一个空字符串或者只有一个字符串时,是用找到strs中长度最短的值来返回。
  • 问题: 没有考虑到当输入空字符串时,返回的是null。当strs中只有一个空字符串或者只有一个字符串时,是用找到strs中长度最短的值来返回。

举报

相关推荐

0 条评论