在看下面试题之前,我们先来测测吧?戳我测试!

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

示例 1:

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

示例 2:

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

取出第一项,然后从第二项开始依次通过startsWith判断,是否以从第一项截取的字符串开头

const longestCommonPrefix = function (strs) {
  if (!strs || !strs.length) {
    return '';
  }
  const str = strs[0];
  let index = 0;
  while (index < str.length) {
    // 从第一项截取前缀
    const prefix = str.slice(0, index + 1);
    // 判断后面的项是否都含有此前缀
    for (let i = 1; i < strs.length; i++) {
      // 不以此前缀开头时,返回结果
      if (!strs[i].startsWith(prefix)) {
        return str.slice(0, index);
      }
    }
    index++;
  }
  return str;
};

longestCommonPrefix(); // ""
longestCommonPrefix([]); // ""
longestCommonPrefix(["flower","flow","flight"]); // "fl"
longestCommonPrefix(["dog","racecar","car"]); // ""
longestCommonPrefix(["dog"]); // "dog"