定义由 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

class Solution {
public:
    int getMaxRepetitions(string s1, int n1, string s2, int n2) {
        vector<int> repeatCnt(n1 + 1, 0);
        vector<int> nextIdx(n1 + 1, 0);
        int j = 0, cnt = 0;
        for (int k = 1; k <= n1; ++k) {
            for (int i = 0; i < s1.size(); ++i) {
                if (s1[i] == s2[j]) {
                    ++j;
                    if (j == s2.size()) {  
                        j = 0;
                        ++cnt;
                    }
                }
            }
            repeatCnt[k] = cnt;
            nextIdx[k] = j;
            for (int start = 0; start < k; ++start) {
                if (nextIdx[start] == j) {
                    int interval = k - start;
                    int repeat = (n1 - start) / interval;
                    int patternCnt = (repeatCnt[k] - repeatCnt[start]) * repeat;
                    int remainCnt = repeatCnt[start + (n1 - start) % interval];
                    return (patternCnt + remainCnt) / n2;
                }
            }
        }
        return repeatCnt[n1] / n2;
    }
};

466.统计重复个数相关推荐

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

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

  2. LeetCode 466. 统计重复个数(循环节)

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

  3. 466. 统计重复个数

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

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

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

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

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

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

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

  7. (JS)统计重复个数

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

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

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

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

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

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

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

最新文章

  1. linux下的打包与压缩
  2. 记一次 .NET 医院CIS系统 内存溢出分析
  3. cf1523B. Lord of the Values
  4. 【2019icpc南京站网络赛 - H】Holy Grail(最短路,spfa判负环)
  5. 如何利用URLOS和云存储打造一个不惧怕宕机的网站环境
  6. 【.Net MF网络开发板研究-06】以太网转串口
  7. 林子雨版《大数据技术原理与应用》实验五 信息挖掘详解
  8. Studio 3T for MogoDB调整字体大小
  9. 基于RNN生成古诗词
  10. oracle查看视图定义语句_Oracle-视图
  11. 【C语言编程】 配对碱基链
  12. Java 基础学习之字符串的简单操作和适配器设计模式
  13. tl-wdr7300虚拟服务器怎么设置,TP-Link TL-WDR7300路由器wifi密码怎么设置?(电脑)...
  14. Linux操作系统之安装Linux虚拟机
  15. 23230118英语学习
  16. Gson详解--入门篇
  17. ubuntu 超级优化,不仅仅是禁用几个服务哦
  18. 计算机主机箱内的主要硬件有,电脑的基本硬件包括哪些
  19. 安卓手机内置NFC模块的使用和开发
  20. 逝去的2009(四)

热门文章

  1. [ASP.NET MVC 小牛之路]08 - Area 使用
  2. mac设置多个屏幕显示的问题
  3. Android开发之SDCardUtils工具类。java工具详细代码,附源代码。判断SD卡是否挂载等功能...
  4. emacs 安装指引
  5. PHP中钩子函数的实现与认识
  6. 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)...
  7. 五大列级庄_酒庄拉菲古堡Chateau Lafite Rothschild, 波尔多五大一级庄之首
  8. springboot @value 默认值_原创 | 搞定默认值
  9. python连接mysql代码_Python连接MySQL及基本操作代码
  10. 最小生成树:Kruskal算法