searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

最长公共前缀-算法学习

2023-07-12 04:00:45
2
0

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

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

示例:
输入: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));
0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

最长公共前缀-算法学习

2023-07-12 04:00:45
2
0

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

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

示例:
输入: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));
文章来自个人专栏
js
57 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0