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
};
网友评论