找到输入数组中所有字符串的最长公共前缀

44 阅读1分钟

输入['aaafsd', 'aawwewer', 'aaddfff'] 输出 'aa'

function longestCommonPrefix(strings) {
  if (strings.length === 0) {
    return '';
  }

  // 以第一个字符串为基准
  const baseString = strings[0];

  for (let i = 0; i < baseString.length; i++) {
    // 检查当前位置的字符是否与其他字符串相同
    for (let j = 1; j < strings.length; j++) {
      if (baseString[i] !== strings[j][i]) {
        // 返回找到的最长公共前缀
        return baseString.slice(0, i);
      }
    }
  }

  // 如果没有不匹配的字符,返回整个基准字符串
  return baseString;
}

// 示例用法
const inputArray = ['aa/bb/sd', 'aa/bb/wwewer', 'aa/bb/ddfff'];
const result = longestCommonPrefix(inputArray);
console.log(result); // 输出 'aa/bb'

相似题目:1143. 最长公共子序列