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

作者:董员外 时间:2024-05-21 10:21:00 

这是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
};

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

知识点

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

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

来源:https://juejin.cn/post/7148810623726878727

标签:JavaScript,前端算法,最大重复,子字符串
0
投稿

猜你喜欢

  • Python 文件操作技巧(File operation) 实例代码分析

    2021-03-12 00:02:50
  • 分析python切片原理和方法

    2021-04-19 21:39:03
  • mysql压缩包版安装配置方法图文教程

    2024-01-19 11:08:58
  • ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)

    2024-05-02 16:18:12
  • Python操作Excel把数据分给sheet

    2023-08-07 17:03:53
  • Python实现的IP端口扫描工具类示例

    2023-02-25 07:22:25
  • pytorch-gpu安装的经验与教训

    2022-01-11 20:23:36
  • Python实现学生管理系统的代码(JSON模块)

    2022-01-02 07:54:42
  • pytorch中可视化之hook钩子

    2021-07-30 04:26:23
  • mysql 存储过程 使用小结

    2010-10-25 20:02:00
  • 15个用户体验设计剖析

    2010-05-11 16:43:00
  • Oracle如何直接运行OS命令(下)第1/2页

    2010-07-30 13:26:00
  • ASP写的汉字转换为UTF-8的一段代码

    2009-07-05 18:49:00
  • Python OpenCV学习之图像滤波详解

    2021-09-17 18:49:36
  • Python使用新浪微博API发送微博的例子

    2023-12-22 08:43:45
  • Python中with...as...的使用方法

    2021-10-01 16:58:07
  • 举例区分Python中的浅复制与深复制

    2022-08-20 02:34:57
  • 为你的网页添加背景音乐

    2007-02-03 11:39:00
  • Python中单线程、多线程和多进程的效率对比实验实例

    2022-12-01 09:25:55
  • Python 中Django验证码功能的实现代码

    2022-05-01 22:55:39
  • asp之家 网络编程 m.aspxhome.com