14.最长公共前缀

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

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

示例 1:

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

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

提示:

1 <= strs.length <= 200

0 <= strs[i].length <= 200

strs[i] 仅由小写英文字母组成

解法

1、双层循环

自己的解法

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function (strs) {
  let index = 0;
  let first = strs[0];
  let flag = false;

  for (; index < first.length; index++) {
    for (let i = 1; i < strs.length; i++) {
      if (first[index] === strs[i][index]) {
        continue;
      } else {
        flag = true;
        break;
      }
    }
    if (flag) {
      break;
    }
  }
  return first.slice(0, index);
};

2、选取数组第一个字符串,不断截取第一个字符串长度比对

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function (strs) {
  if (strs == null || strs.length == 0) {
    return "";
  }

  let pre = strs[0];
  let i = 1;

  while (i < strs.length) {
    while (strs[i].indexOf(pre) != 0) {
      pre = pre.substring(0, pre.length - 1);
    }
    i++;
  }

  return pre;
};