【Leetcode】466. 统计重复个数

文章目录

  • 题目
  • 思路
  • 代码

题目

466. 统计重复个数
在这里插入图片描述

思路

题目要求找出一个最大整数 m,使得经过 n2 个字符串 s2 组成的字符串能够被经过 n1 个字符串 s1 组成的字符串完全包含的次数。使用动态规划来记录每个位置匹配的情况,并通过循环节的分析来计算最终的匹配次数。

代码

class Solution {
public:int getMaxRepetitions(string s1, int n1, string s2, int n2) {int len1 = s1.length();int len2 = s2.length();vector<vector<int>> next(len1 + 1, vector<int>(26, 0));vector<vector<int>> dp(len1 + 1, vector<int>(2, 0));for (int i = 0; i < 26; i++) {next[len1][i] = INT_MAX;}for (int i = len1 - 1; i >= 0; i--) {int idx = s1[i] - 'a';for (int j = 0; j < 26; j++) {next[i][j] = next[i + 1][j];if (j == idx) {next[i][j] = i + 1;}}}for (int i = 0; i < len1 + 1; i++) {int count = 0;int offset = i;int j = 0;while (j < len2) {int idx = s2[j] - 'a';int pos = next[offset][idx];if (offset == 0 && pos == INT_MAX) {return 0;}if (pos == INT_MAX) {offset = 0;count++;} else {offset = pos;j++;}}dp[i][0] = count;dp[i][1] = offset;}int p = 1;int total = 0;int offset = 0;while (p <= n1) {int count = dp[offset][0];int idx = dp[offset][1];if (p + count > n1) {break;}p = p + count;total++;offset = idx;}return total / n2;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/316826.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka容灾演练的方案

背景 kafka可以通过MirrorMaker工具把集群的数据从一个集群同步到另一个集群&#xff0c;通过在另一个数据中心创建灾备集群的方式可以做到容灾的效果,但是如果我们不通过如此重量级的工具也想达到容灾演练的目的&#xff0c;可以怎么做呢 kafka简单容灾实现 当原kafka集群发…

2024最新最全【Xmind8】下载安装零基础教程【附安装包】

软件下载 软件&#xff1a;Xmind 版本&#xff1a;2023 语言&#xff1a;简体中文 大小&#xff1a;136.72M 安装环境&#xff1a;Win7及以上版本 &#xff0c;64位操作系统 硬件要求&#xff1a;CPU2.0GHz &#xff0c;内存4G&#xff08;或更高&#xff09; 下载通道①百度网…

报表生成器FastReport .Net用户指南:带图表的报告(图表编辑器)

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。 FastReport.NET官方版…

AndroidStudio导入程序、项目(教程)

目录 1. 首先解压压缩包&#xff0c;转为文件夹 2. 打开解压好的项目文件夹&#xff0c;删除.gradle和.idea这两个文件 3. 修改bulid.gradle文件&#xff0c;将gradle的版本型号改成自己的 (1) 传统结构 (2) 简洁结构 4. 打开android stdio软件&#xff0c;导入已经修改好…

Apache Commons VFS(虚拟文件系统)使用详解

第1章&#xff1a;Apache Commons VFS简介 大家好&#xff0c;我是小黑&#xff0c;今天我们来聊聊Apache Commons VFS&#xff08;虚拟文件系统&#xff09;。想必很多朋友都听说过或者用过Apache Commons的其他库&#xff0c;但是VFS可能还有点陌生。那么&#xff0c;什么是…

咖啡茶饮营销不止「9 块 9」,门店「VACS」需要全面提升

每一座城市 CBD 的写字楼下和热门商圈的街边&#xff0c;都是咖啡茶饮的战场。作为餐饮行业的热门赛道&#xff0c;咖啡茶饮近年来一直保持高速增长。据统计&#xff0c;截至今年 10 月 31 日&#xff0c;陆陆续续又有约 15 万家店铺开门营业…… 白热化竞争下&#xff0c;茶饮…

重读VIT:深入探索细节与影响

1. 模型架构 提起一个新模型&#xff0c;我想大家最关心的事就是&#xff1a;它到底长什么样&#xff1f;输入输出是什么&#xff1f;我要怎么用&#xff1f;所以&#xff0c;我们先来看模型架构。 1.1 Bert结构 前面说过&#xff0c;VIT几乎和Bert一致&#xff0c;我们来速扫…

通过软盘拷贝文件 - 华为OD统一考试

OD统一考试(B卷) 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 有一名科学家想要从一台古董电脑中拷贝文件到自己的电脑中加以研究但此电脑除了有一个3.5寸软盘驱动器以外&#xff0c;没有任何手段可以将文件持贝出来&#xff0c;而且只有一张软盘可以…

【算法挨揍日记】day45——474. 一和零、879. 盈利计划

474. 一和零 474. 一和零 题目描述&#xff1a; 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。 解…

电力系统中非线性负载是什么

电力系统中的非线性负载是指负载电流与负载电压之间不呈线性关系的负载&#xff0c;传统的线性负载&#xff0c;如电阻、电感和电容等&#xff0c;其电流与电压之间的关系符合欧姆定律&#xff0c;即电流与电压成正比。而非线性负载则不符合欧姆定律&#xff0c;其电流与电压之…

JavaScript:作用域变量回收

JavaScript&#xff1a;作用域&变量回收 局部作用域函数作用域块作用域 全局作用域作用域链变量在浏览器模型中的位置浏览器模型全局变量的产生情况直接赋值全局对象与var全局对象的区别 垃圾回收机制引用计数法标记清除法 闭包变量提升&函数提升 作用域规定了变量能够…

SPSS23软件安装包下载及安装教程

SPSS 23下载链接&#xff1a;https://docs.qq.com/doc/DUkRHVUxFUkVBUUlj 1.选中下载好的安装包&#xff0c;鼠标右键解压到“SPSS 23 64bit”文件夹 2.打开”Setup“文件夹 3.选中”Setup.exe“鼠标右击选择以管理员身份运行 4.点击“下一步” 5.点击“下一步” 6.选择“我接受…