Skip to content

最长公共前缀

简单

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

题解

使用了 .startsWith() 方法: 首先将数组中的第一个字符串作为初始的公共前缀 prefix。 然后,依次与后面的字符串进行比较,如果当前字符串不以 prefix 开头,则将 prefix 不断截取掉最后一个字符,直到当前字符串以 prefix 开头为止。 这样,最终的 prefix 就是最长公共前缀。 这个解决方案假设输入的数组中至少存在一个字符串,否则会返回空字符串

typescript
function longestCommonPrefix(strs) {
  if (strs.length === 0) {
    return "";
  }

  let prefix = strs[0];

  for (let i = 1; i < strs.length; i++) {
    while (!strs[i].startsWith(prefix)) {
      prefix = prefix.slice(0, prefix.length - 1);
    }
  }
}