【study】js实现输出数组最长的前缀

95 阅读1分钟
function longestCommonPrefix(arr) {
  if (arr.length === 0) return '';

  // 初始前缀选择第一个字符串
  let prefix = arr[0];

  for (let i = 1; i < arr.length; i++) {
    let currentString = arr[i];

    // 缩短前缀直到找到公共前缀
    while (currentString.indexOf(prefix) !== 0) {
      prefix = prefix.substring(0, prefix.length - 1);
      if (prefix === '') {
        return '';
      }
    }
  }

  return prefix;
}

console.log(longestCommonPrefix(['flower', 'flow', 'flight'])); // 输出: "fl"
console.log(longestCommonPrefix(['dog', 'car', 'racecar']));    // 输出: ""
console.log(longestCommonPrefix(['interspecies', 'interstellar', 'interstate'])); // 输出: "inters"
console.log(longestCommonPrefix(['throne', 'throne']));        // 输出: "throne"
console.log(longestCommonPrefix(['prefix', '']));              // 输出: ""

substring 是 JavaScript 中一个字符串方法,用于提取字符串的一部分。它可以从字符串中提取一个子字符串(即部分字符串),并返回这个子字符串,而不会改变原字符串。

// 如果 `indexStart` 大于 `indexEnd`,`substring` 方法会自动交换这两个参数:

let str = "JavaScript";

console.log(str.substring(4, 1)); // 输出: "ava"

console.log(str.substring(1, 4)); // 输出: "ava"