美文网首页
2022-04-18 LeetCode刷题

2022-04-18 LeetCode刷题

作者: 网恋被骗二块二 | 来源:发表于2022-04-18 15:19 被阅读0次

1668. 最大重复子字符串

题目表述:
给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 为 0 。

给你一个字符串 sequence 和 word ,请你返回 最大重复值 k 。


示例

个人的

/**
 * @param {string} sequence
 * @param {string} word
 * @return {number}
 */
var maxRepeating = function (sequence, word) {
    let index = 0; // 循环起始值
    let max = Infinity; // 不知道需要循环多少遍,所以取无限
    let result = 0;// 重复值
    let copyWord = word;// 拷贝一份初始值
    while (++index < max) {
        if (sequence.indexOf(word) > -1) {// 当目标字符串寻找到索引字符串时
            result+=1;// 重复值+1
        }
        word+=copyWord;// 重复一次字符串
        if (word.length > sequence.length) { // 如果索引字符串长度超过目标字符串长度
            break;// 终止循环
        }
    }
    return result // 返回结果
};

参考网友答案后得到

/**
 * @param {string} sequence
 * @param {string} word
 * @return {number}
 */
var maxRepeating = function (sequence, word) {
    // 重复次数,起始值为1,默认重复1次
    let result = 1;
    // 创建一个新的变量储存重复字符串
    let copyWord = word;
    // 当在目标字符串中搜索内容时,若寻找到内容(即返回索引值不为1)
    while(sequence.indexOf(copyWord) !== -1) {
        // 此时重复次数+1
        result += 1;
        // 重新赋值搜索字符串
        copyWord = word.repeat(result)
    }
    // 重复次数-1得到本该获取到的重复值
    return result - 1
};

相关文章

网友评论

      本文标题:2022-04-18 LeetCode刷题

      本文链接:https://www.haomeiwen.com/subject/weedertx.html