题目详情:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例:
输入:strs = ["flower","flow","flight"]
输出:"fl"
解题思路:
首先,我们检查数组 strs 是否为空,如果是,则直接返回空字符串。
然后,我们将数组中的第一个字符串作为初始的公共前缀 prefix。
接下来,使用一个循环遍历数组中的其他字符串。对于每个字符串,我们不断地从 prefix 的末尾开始删除字符,直到其在当前字符串中以该前缀开头(即 strs[i].indexOf(prefix) === 0)。如果此时 prefix 变为空字符串,说明不存在公共前缀,直接返回空字符串。
最后,返回公共前缀 prefix。
代码实现:
function longestCommonPrefix(strs) {
if (strs.length === 0) {
return "";
}
let prefix = strs[0];
for (let i = 1; i < strs.length; i++) {
while (strs[i].indexOf(prefix) !== 0) {
prefix = prefix.slice(0, prefix.length - 1);
if (prefix === "") {
return "";
}
}
}
return prefix;
}
// 示例输入
const strs = ["flower", "flow", "flight"];
// 调用函数并输出结果
console.log(longestCommonPrefix(strs));