20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串

题目描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]

输出: "fl"

示例 2:

输入: ["dog","racecar","car"]

输出: ""

解释: 输入不存在公共前缀。

考点

  1. 根据列表中的字符串长度排序
  2. 两层for循环的使用,for|else的使用

算法

从下标0开始,判断每一个字符串同一索引所对应的值,判断是否全部相同。直到遇到不全部相同的时候return。

由于提供的单词长度不同,应该以最小单词为基准进行比较,如["flower","flow","flight"]中应该以flow来和剩下的单词一一对比。

  1. 所有单词同一索引所对应的值相等,则更新最长公共前缀
  2. 有一个单词与其他单词同一索引所对应的值不相等,则返回最后更新的最长公共前缀

代码

def longestCommonPrefix(strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    strs.sort(key =len)# 根据列表中的字符串长度排序
    result = ''#记录公共前缀
    for i in range(len(strs[0])):#以列表中长度最小的单词为基准进行遍历
        for j in strs:#遍历列表中的每个字符串
            if j[i] != strs[0][i]:#如果列表中的字符串的对应下标是否相同
                return result
        else:
            result += strs[0][i]#如果所有字符串下标都相同,更新最长公共前缀
    return result

猜你喜欢

转载自www.cnblogs.com/hyj691001/p/10799710.html