Skip to content

Latest commit

 

History

History
56 lines (50 loc) · 1.13 KB

File metadata and controls

56 lines (50 loc) · 1.13 KB

14. 最长公共前缀

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

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

示例 1:

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

示例 2:

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

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

说明:

所有输入只包含小写字母 a-z

解答:

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
  if (strs.length === 0) {
    return ''
  }
  // 找出最短的字符串
  var minIndex = 0
  for (var i = 0; i < strs.length; i++) {
    if (strs[i].length < strs[minIndex].length) {
      minIndex = i
    }
  }
  // 将最短的字符串设置为公共前缀
  var comonStr = strs[minIndex]
  // 进行截取比较, 找出相邻字符串的公共前缀
  for (var i = 0; i < strs.length; i++) {
    for (var j = 0; j < strs[i].length && j < strs[minIndex].length; j++) {
      if (comonStr[j] !== strs[i][j]) {
        break
      }
    }
    comonStr = strs[i].substr(0, j)
    if (comonStr.length === 0) {
      return ''
    }
  }
  return comonStr
};