1. 题目

由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n]。例如,["abc",3]=“abcabcabc”

如果我们可以从 s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,“abc” 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。

现在给你两个非空字符串 s1 和 s2(每个最多 100 个字符长)和两个整数 0 ≤ n1 ≤ 106 和 1 ≤ n2 ≤ 106。现在考虑字符串 S1 和 S2,其中 S1=[s1,n1] 、S2=[s2,n2] 。

请你找出一个可以满足使[S2,M] 从 S1 获得的最大整数 M 。

示例:
输入:
s1 ="acb",n1 = 4
s2 ="ab",n2 = 2返回:
2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-the-repetitions
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 957. N 天后的牢房(查找循环节)
机器人大冒险

题目意思是:
给你s1,自己加自己,共n1次,然后s2也一样,有n2次
后者在前者里找自己的完整子序,最多出现了多少次

  • 参考题解
class Solution {public:int getMaxRepetitions(string s1, int n1, string s2, int n2) {if(n1*s1.size() < n2*s2.size())return 0;int len1 = s1.size(), len2 = s2.size(), cnt1 = 0, cnt2 = 0, i, j=0;unordered_map<int,pair<int,int>> m;//j, cnt1, cnt2while(cnt1 < n1){for(i = 0; i < len1; ++i){if(s1[i]==s2[j])j++;if(j==len2)//循环单个s2j=0,cnt2++;//完整个数}cnt1++;//s1的个数if(!m.count(j))//j停在什么位置m[j] = make_pair(cnt1, cnt2);//记录停在j位置时的cntelse{    //再次找到同一个 j 时,产生循环节了int lastcnt1 = m[j].first;//上次的cntint lastcnt2 = m[j].second;int gap1 = cnt1-lastcnt1;//做差,中间间隔有多少个int gap2 = cnt2-lastcnt2;int num = (n1-cnt1)/gap1;//剩余的够多少个循环cnt1 += num*gap1;//cnt1 直接+到接近结束cnt2 += num*gap2;}}return cnt2/n2;//n1个s1可以找到cnt2个s2,可以找到cnt2/n2 个(n2*s2)}
};

4 ms 6.3 MB

LeetCode 466. 统计重复个数(循环节)相关推荐

  1. 466. 统计重复个数 golang[转]

    转载(mark) https://blog.by24.cn/archives/leetcode-count-the-repetitions.html func getMaxRepetitions(s1 ...

  2. 466. 统计重复个数

    定义由 n 个连接的字符串 s 组成字符串 S,即 S = [s,n].例如,["abc", 3]="abcabcabc". 另一方面,如果我们可以从 s2 中 ...

  3. [Leedcode][JAVA][第466题][统计重复个数][数组]

    [问题描述]466. 统计重复个数 由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n].例如,["abc",3]="abcabcabc".如果 ...

  4. Leetcode466.统计重复个数——掐头去尾寻找循环点

    文章目录 引入 本题题解 引入 每日一题出现了这么一道题:466. 统计重复个数

  5. mysql 查询重复字段统计重复个数和删除重复字段的重复数据

    假设我们有表A 里面有字段  field 里面有很多重复数据. 现在需要查询当前字段重复的个数 mysql>select filed ,count(*) as total from A grou ...

  6. (JS)统计重复个数

    由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n].例如,["abc",3]="abcabcabc". 如果我们可以从 s2 中删除某些字符使 ...

  7. hash 建表 query 统计重复个数

    WLS的数列 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 WLS喜欢数学,有一天,老师给了他一个长度为N的数列A,问他有多少 ...

  8. js数组去重并统计重复个数

    方法一.利用正则和reduce() var str = 'askbuasdjjkasjdixcjasa'var arr = str.split('').sort().join('').match(/( ...

  9. python统计excel中重复数据_EXCEL公式解读:统计不重复个数

    作者:祝洪忠 转自:Excel之家ExcelHome 小伙伴们好啊,今天咱们一起学习一下COUNTIF函数的高级应用,来看看如何使用这个函数完成不重复个数的统计. 模式化的公式为: =SUMPRODU ...

最新文章

  1. Attention!注意力机制可解释吗?
  2. 【模型开发】构建风控评分卡模型介绍(WOE/KS/ROC)
  3. MySQL高级 orderby 优化
  4. (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】
  5. java 七巧板油漆问题_七巧板颜色填充的问题?
  6. python版:装饰器模式
  7. 【原创】基于日志增量,统计qps,并基于ip排序
  8. (简单有效)vivo手机怎么不root激活Xposed框架
  9. 颠覆性创新:未来人人都可以构建一个元宇宙
  10. 自建DDNS教程【阿里云 AliDDNS 2.0】
  11. 关键业绩指标(KPI)
  12. Gowild狗尾草推出HE琥珀,标贝科技为其提供更“温柔”的声音
  13. c语言中point用法,point的用法总结大全
  14. 希尔伯特(Hilbert)变换
  15. 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较
  16. P3224 [HNOI2012]永无乡 FHQ-Treap 启发式合并
  17. 目前绝大多数处理语言先验性文章总结
  18. 图的邻接矩阵和邻接表
  19. Java设计模式之简单工厂模式实验(软件工程综合实践课程第二周)
  20. 年纪轻轻竟脱发?头发到底该如何挽回?

热门文章

  1. sql server 创建唯一性非聚集索引语句_数据库专题—索引原理
  2. MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
  3. uboot的目录分析
  4. Linux下如何搭建Java环境
  5. viewpager 跳转到指定页面
  6. linux-0.11内核 调试教程+GCC源代码
  7. 工厂方法模式及php实现
  8. Swift学习笔记 闭包表达式
  9. LwIP编译方法以及选项说明
  10. 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库...