LeetCode 1668. 最大重复子字符串 JavaScript 题解

作者:异步漫步时间:2026-10-25 21:11:55浏览:487

本文详解 LeetCode 第 1668 题“最大重复子字符串”的 JavaScript 解法。通过判断子串连续重复后的字符串是否仍为原字符串的子串,利用 includes 方法循环累加并统计最大重复次数 k。文章提供完整代码实现与逐步逻辑解析,适用于前端算法学习。

本文针对 LeetCode 平台上的第 1668 道题目进行解析。

最大重复子字符串

给定一个字符串 sequence,若字符串 word  连续重复 k 次后形成的字符串是  sequence 的子字符串,则单词  word 的重复值为 k。单词 word 的最大重复值定义为  word  在  sequence  中出现的最大重复次数。若 word 不是 sequence  的子串,则重复值 k 为 0。给定字符串 sequence 和 word,请返回最大重复值 k。

示例 1:

输入:sequence = "ababc", word = "ab"

输出:2

解释:"abab" 是 "ababc" 的子字符串。

示例 2:

输入:sequence = "ababc", word = "ba"

输出:1

解释:"ba" 是 "ababc" 的子字符串,但 "baba" 不是 "ababc" 的子字符串。

示例 3:

输入:sequence = "ababc", word = "ac"

输出:0

解释:"ac" 不是 "ababc" 的子字符串。

解题思路

若 word 是 sequence 的字串,则 word 的长度必然小于等于 sequence。当 word 的长度大于 sequence 的长度,或者 sequence 不包含 word 时,可直接返回 0。初始化 count 为重复值计数器,并初始化变量 str 等于 word。当 str 的长度小于等于 sequence 的长度时,判断 sequence 是否包含 str;如果包含,则令 str=str+word 并且 count 自增 1;如果不包含,则返回当前的 count 值。

具体步骤可以拆分为:

  • 第一步:判断 当word的长度大于sequence的长度或者sequence不包含word就返回 0
  • 第二步:初始化count为重复值,初始化一个变量str,当str的长度小于等于sequence的长度就进入循环,否则返回count
  • 第三步:循环体内判断sequence是否包含str,如果包含就令str=str+word,且让count自增1;否则直接返回count
var maxRepeating = function(sequence, word) {
    if(word.length>sequence.length || !sequence.includes(word)) return 0
    let str = word
    let count = 0
    while(str.length<=sequence.length){
        if(sequence.includes(str)){
            str+=word
            count++
        }else{
            return count
        }
    }
    return count
};

最大重复子字符串

知识点

includes:用来判断一个数组或者字符串是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。

repeat() : str=str+word可以用repeat来代替,repeat方法构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

以上就是JavaScript前端学算法题解LeetCode最大重复子字符串的详细内容,更多关于JavaScript算法最大重复子字符串的资料请关注本站其它相关文章!

作者最新文章