每天一道leetcode(Day 28)


14. 最长公共前缀

题目描述

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

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

示例

  • 示例  1:
输入: ["flower","flow","flight"]
输出: "fl"
  • 示例  2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

解题思路

因为求得是所有字符串的最大公共前缀,因此可以假设初始化的公共前缀 res 是第一个字符串,然后遍历数组两两找出公共前缀最终结果就是所求最大公共前缀。如果查找过程中出现了 res 为空的情况,则公共前缀不存在直接返回。

代码

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function (strs) {
  if (strs.length === 0) return "";
  let res = strs[0];
  for (let i = 1; i < strs.length; i++) {
    let j = 0;
    for (; j < strs[i].length && j < res.length; j++) {
      if (res[j] !== strs[i][j]) break;
    }
    res = res.substring(0, j);
    if (!res.length) return res;
  }
  return res;
};

参考

14. 最长公共前缀


文章作者: CassielLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CassielLee !
评论
  目录