# 最长公共前缀(14)

# 题目

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

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

# 示例

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

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

# 算法

将第一个字符串设为最长公共前缀,然后依次比较之后的字符串和当前最长公共前缀,将比较后得到的最长公共前缀赋值给新的最长公共前缀,继续依次比较

每次开始前判断最长公共前缀是否为空,如果为空直接return ""

function longestCommonPrefix(strs) {
  if(!strs.length) return ""
  let longestPrefix = strs[0]
  for(let i = 1; i < strs.length; i++) {
    let temp = ""
    for(let j = 0; j < longestPrefix.length && j < strs[i].length; j++) {
      if(longestPrefix[j] !== strs[i][j]) {
        break
      }
      temp += longestPrefix[j]
    }
    if(!temp.length) {
      return ""
    }
    longestPrefix = temp
  }
  return longestPrefix
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18