JavaScript前端學算法題解LeetCode最大重復子字符串
這是LeetCode的第1668題:最大重復子字符串
最大重復子字符串
給你一個字符串 sequence ,如果字符串 word 連續(xù)重復 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的長度?;蛘遱equence不包含word那就可以直接返回 0;初始化count為重復值,初始化一個變量str,讓他等于word,當str的長度小于等于sequence就可以判斷sequence是否包含str,如果包含那就令 str=str+word并且count自加1,如果不包含就返回count
具體步驟可以拆分為:
- 第一步:判斷 當
word的長度大于sequence的長度或者sequence不包含word就返回 0 - 第二步:初始化
count為重復值,初始化一個變量str,當str的長度小于等于sequence的長度就進入循環(huán),否則返回count - 第三步:循環(huán)體內(nèi)判斷
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:用來判斷一個數(shù)組或者字符串是否包含一個指定的值,根據(jù)情況,如果包含則返回 true,否則返回 false。
repeat() : str=str+word可以用repeat來代替,repeat方法構造并返回一個新字符串,該字符串包含被連接在一起的指定數(shù)量的字符串的副本。
以上就是JavaScript前端學算法題解LeetCode最大重復子字符串的詳細內(nèi)容,更多關于JavaScript算法最大重復子字符串的資料請關注腳本之家其它相關文章!
相關文章
JavaScript使用JSON.stringify()方法帶參及不帶參示例詳解
這篇文章主要介紹了JavaScript使用JSON.stringify()方法帶參及不帶參示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Js原型鏈constructor prototype __proto__屬性實例詳解
這篇文章主要介紹了Js原型鏈constructor prototype __proto__屬性實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
gulp-font-spider實現(xiàn)中文字體包壓縮實踐
這篇文章主要為大家介紹了gulp-font-spider實現(xiàn)中文字體包壓縮實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
微信小程序 數(shù)組中的push與concat的區(qū)別
這篇文章主要介紹了微信小程序 數(shù)組中的push與concat的區(qū)別的相關資料,需要的朋友可以參考下2017-01-01

