JavaScript前端学算法题解LeetCode最大重复子字符串

 更新时间:2022年09月30日 09:13:36   作者:董员外  
这篇文章主要为大家介绍了JavaScript前端学算法题解LeetCode最大重复子字符串,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

这是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" 的子字符串。

解题思路

如果 wordsequence,的字串,那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算法最大重复子字符串的资料请关注程序员之家其它相关文章!

相关文章

  • 微信小程序 常用工具类详解及实例

    微信小程序 常用工具类详解及实例

    这篇文章主要介绍了微信小程序 常用工具类详解及实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • 浅谈 JavaScript 沙箱Sandbox

    浅谈 JavaScript 沙箱Sandbox

    在计算机安全中,沙箱(Sandbox)是一种用于隔离正在运行程序的安全机制,通常用于执行未经测试或不受信任的程序或代码,它会 为待执行的程序创建一个独立的执行环境,内部程序的执行不会影响到外部程序的运行,下文我们来介绍一个“浏览器世界”的沙箱
    2021-10-10
  • 详解微信小程序如何实现类似ChatGPT的流式传输

    详解微信小程序如何实现类似ChatGPT的流式传输

    这篇文章主要为大家介绍了微信小程序如何实现类似ChatGPT的流式传输示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 关于前端JavaScript ES6详情

    关于前端JavaScript ES6详情

    这篇文章主要介绍了关于前端JavaScript中的ES6,ES6是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017语法标准,ES6新特性目前只有在一些较新版本浏览器得到支持,老版本浏览器里面运行我们需要将ES6转换为ES5
    2021-10-10
  • Google 地图获取API Key详细教程

    Google 地图获取API Key详细教程

    本文主要介绍Google 地图API Key,开发Google 地图应用的朋友都知道,在开发的前需要免费的Google 地图API Key,这里详细给出获得API Key的流程,有需要的小伙伴参考下
    2016-08-08
  • 详解Three.js?场景中如何彻底删除模型和性能优化

    详解Three.js?场景中如何彻底删除模型和性能优化

    这篇文章主要为大家介绍了详解Three.js?场景中如何彻底删除模型和性能优化,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • TypeScript对象解构操作符在Spartacus实际项目开发中的应用解析

    TypeScript对象解构操作符在Spartacus实际项目开发中的应用解析

    这篇文章主要为大家介绍了TypeScript对象解构操作符在Spartacus实际项目开发中的应用解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Vue.js React与Angular流行前端框架优势对比

    Vue.js React与Angular流行前端框架优势对比

    这篇文章主要为大家介绍了Vue.js React与Angular流行前端框架优势对比,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 微信小程序 location API接口详解及实例代码

    微信小程序 location API接口详解及实例代码

    这篇文章主要介绍了微信小程序 location API接口相关资料,这里详细介绍了location API接口并附简单实例代码,需要的朋友可以参考下
    2016-10-10
  • 微信小程序中使用Promise进行异步流程处理的实例详解

    微信小程序中使用Promise进行异步流程处理的实例详解

    这篇文章主要介绍了微信小程序中使用Promise进行异步流程处理的实例详解的相关资料,这里详细说明该如何使用Promise 来进行异步流程的处理,提供具体实现步骤,需要的朋友可以参考下
    2017-08-08

最新评论

?


http://www.vxiaotou.com