leetcode 686. Repeated String Match 题解

LeetCode --- 686. Repeated String Match 解题报告 Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1. For example, with A = "abcd" and B = "cdabcdab". Return 3, because by repeating A three times (“abcdabcdabc 阅读详情
题目:

给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。

举个例子,A = "abcd",B = "cdabcdab"。

答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为”abcdabcd”,B 并不是其子串。

注意:

A 与 B 字符串的长度在1和10000区间范围内。

题解:

核心思想是不断重复A得到res,直到长度大于等于B。如果res包含B,则返回true,如果不包含,可以令res再加一次A,此时包含B则返回true,不包含则直接返回false。

例如 A = "abcd",B = "cdabcdab",A重复两次后得到res = "abcdabcd",此时res不包含B,但res + A 后则包含B。

C++
class Solution {
public:
    int repeatedStringMatch(string A, string B) {
        string res = A;
        int cnt = 1;
        while(res.size() < B.size()){
            res += A;
            cnt++;
        }
        if(res.find(B) != string::npos) {
            return cnt;
        }    
        res += A;
        if(res.find(B) != string::npos) {
            return cnt + 1;
        }    
        return -1;
    }
};
Java
class Solution {
    public int repeatedStringMatch(String A, String B) {
        int lB = B.length();
        String res = A;
        int cnt = 1;
        while( res.length() < lB) {
            res += A;
            cnt++;
        }
        if(res.contains(B)) {
            return cnt;
        }
        res += A;
        if(res.contains(B)) {
            return cnt + 1;
        }
        return -1;
    }
}
Python
class Solution(object):
    def repeatedStringMatch(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: int
        """
        lenB = len(B)
        res = A
        cnt = 1
        while(len(res) < lenB):
            res += A
            cnt += 1
        if(res.find(B) != -1):
            return cnt
        res += A
        if(res.find(B) != -1):
            return cnt + 1
        return -1
JavaScript
/**
 * @param {string} A
 * @param {string} B
 * @return {number}
 */
var repeatedStringMatch = function(A, B) {
    var lenB = B.length;
    var res = A;
    var cnt = 1;
    while (res.length < lenB) {
        res += A;
        cnt++;
    }
    if(res.indexOf(B) != -1) {
        return cnt;
    }
    res += A;
    cnt++;
    if(res.indexOf(B) != -1) {
        return cnt;
    }
    return -1;
};
参考资料

https://leetcode.com/problems/repeated-string-match/discuss/108086/Java-Solution-Just-keep-building-(OJ-Missing-Test-Cases)

云点播、云播放破解网页版 目前网上都流传者各种不同版本,或不同名称的云播源码,基本上每一个我都有用过,我个人认识这个比较好,所以分享给大家,但收了点资源分,应该不过份,我想大家也会理解的, 本云点播版本,适用于网站爱好者,初学者或及常用看电影的朋友。 里有有说明, 希望对大家有用。 如果好请顶一下。 http://pan.baidu.com/share/link?shareid=2826978429&uk=2989350859 http://pan.baidu.com/share/link?shareid=2828278302&uk=2989350859 http://pan.baidu.com/share/link?shareid=2829601278&uk=2989350859 http://pan.baidu.com/share/link?shareid=2830696748&uk=2989350859 立即下载

相关推荐

单模式匹配算法 Rabin-Karp

单模式匹配算法 Rabin-Karp 可供算法研究参考

云点播使用方法

具体可参考云点播官方文档 (1).在页面中引入文件 在合适的地方引入播放器样式文件与脚本文件: <link href="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet"> <!--如果需要在 Chrome 和 Firefox 等现代浏览器中通过 H5 播放 HLS 格式的视频,需要在 tcplayer.v4.1.min.js 之前引入 hls.min.0.13.2m.js。-

pacholy的博客 4023

Java实现 LeetCode 686 重复叠加字符串匹配

686. 重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。 举个例子,A = “abcd”,B = “cdabcdab”。 答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为”abcdabcd”,B 并不是其子串。 注意: A 与 B 字符串的长度在1和10000区间范围内。 class Solution { public int repeatedStringMatch(String A, String B) {

Codeforces Round #686 Div. 3

A. Special Permutation 题目要求构造一个数列,保证 a[i] != i 直接将1-n的数列向后移一位即可 int T,n; int a[maxn]; int main(){ scanf("%d",&T); while(T--){ memset(a,-1,sizeof a); scanf("%d",&n); for(int i=1;i<n;i++){ a[i] = i+1; } a[n] = 1; for(int i=

你数过天上的星星吗 719

海康威视iVMS-4200在银河麒麟系统部署全攻略与疑难排解

在信创国产化进程中,软件兼容性是关键挑战之一。以安防监控领域广泛使用的海康威视iVMS-4200客户端为例,其从Windows环境迁移到银河麒麟等国产操作系统时,面临架构适配、依赖库匹配等核心兼容性问题。这涉及到跨平台软件部署的通用原理:不同CPU架构(如ARM的飞腾、x86的兆芯)和操作系统底层API的差异,要求软件必须进行针对性编译和优化。解决这类问题的技术价值在于保障专业软件在国产化环境中的稳定运行,是信创产业落地的重要环节。具体到应用场景,如在基于银河麒麟V10的安防监控项目中,通过获取对应架构的.

weixin_33423874的博客 1433

基于淘宝商城用户购物行为数据分析系统

本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。

m0_51388399的博客 2819

Codeforces Round #686 (Div. 3) E. Number of Simple Paths 拓扑排序+组合数学

题意:给一个有n个点,n条边的联通图。问有多少条简单路径。 简单路径是指:一条边最多经过一次的路径。 思路:首先,这个联通图,可以看成是一棵树,然后再加上一条边。 对于一棵树的话,任意两点都可到达,简单路径就是N * (N-1) / 2 然后考虑加上一条边之后,很容易知道,一棵树,加上一条边,必形成一个环。 然后我们考虑多的这条边会带来的贡献即可。 如上图所示,把环上每个点作为根,会分成三颗树。对于在同一颗子树中的点,每个点到自己所在子树内任意一点的简单路径只有一条,而到达不同子树的路径则有两条。 所以d

菜鸡的学习记录 347

ABAP内表数据导出Excel:OLE、ALV与GUI_DOWNLOAD方案全解析

在企业级应用开发中,数据导出是连接后台系统与前端业务分析的关键桥梁。其核心原理是将结构化数据转换为通用文件格式,以实现跨平台的数据交换与可视化。从技术价值看,一个健壮的导出功能能显著提升数据处理效率,减少人工干预,是衡量系统实用性的重要指标。常见的应用场景包括报表生成、数据交接和临时数据提取。本文聚焦于SAP ABAP开发领域,深入探讨如何将内表数据高效、稳定地导出至Excel,涵盖了OLE自动化、ALV标准导出以及基于CL_GUI_FRONTEND_SERVICES与GUI_DOWNLOAD的通用方案,并

weixin_32715349的博客 321

rmi简单应用

做完实验,来个小结。 【实验原理和步骤】1. 定义学生成绩查询或教师信息查询的远程接口2. 实现服务器端软件(程序):设计远程接口的实现类和服务器对象类,在服务器上启动目录服务,并注册远程对象,供客户端访问。远程接口的实现类要从本地读取数据信息(成绩或教师信息),数据信息可以存储在文件或数据库中。3. 实现客户端软件(程序):实现访问远程对象的客户程序。 【方案设计】1)编写 RMI 中...

weixin_30243533的博客 257

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 415

创建 Qt Quick 项目

来看看如何使用 Qt Creator 创建 Qt Quick 项目!

青春不老,奋斗不止! 1万+

leetcode题解-686. Repeated String Match && 38. Count and Say

先看686这道题目:Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1.For example, with A = "abcd" and B = "cdabcda

呜呜哈的博客 1721

利用 SAP Joule 提升 ABAP 开发效率的前提条件与限制全解析

综上,想要在 ABAP Development Tools 中顺利使用 SAP Joule,既要准备好 BTP、IAS、ABAP 系统与 ADT 的版本与信任链,也要理解许可证、配额、语法范围等限制。只有在这些前提全部满足后,Joule 才能真正发挥生成式 AI 的价值,帮助 ABAP 开发者从繁琐模板中解放出来,把注意力投入在业务创新与 Clean Core 改造之上。未来 SAP 还将扩展中文语境、自动修复建议以及跨系统智能代理等功能,值得持续关注。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 663

LeetCode //C - 686. Repeated String Match

【代码】LeetCode //C - 686. Repeated String Match。

Made in Code 772

微信小程序 - 获取当前日期时间(函数封装)

效果图 前言 摘自微信小程序demo程序中utils.js方法。 普通newDate()出来的日期时间,并不是我们想要的格式,所以要进行格式整理。 解决方案 打开utils.js文件(随意),复制以下代码: /** *获取当前时间 *@description自定义日期分钟秒数 *@param{Object}date-newData()对象 *@returnString */ functionformatTime(date){ //年月日

🏆 前端领域优质创作者 2843

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Leetcode686 Repeated String Match

Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1. For example, with A = "abcd" and B = "cdabcdab". Re...

dezhonger的专栏 161

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Leetcode算法学习日志-686 Repeated String Match

Leetcode 686 Repeated String Match 题目原文 Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1. For

Zarlove的博客 577

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

leetcode 686. Repeated String Match

题目: Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1. For example, with A = "abcd" and B = "cda

xclfafa的博客 447

【Leetcode_easy】686. Repeated String Match

problem 686.Repeated String Match solution1: 使用string类的find函数; class Solution { public: int repeatedStringMatch(string A, string B) { int n1 = A.size(), n2 = B.size(), cnt = 1; ...

weixin_30563917的博客 88

[leetcode] 686. Repeated String Match

题目:Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1.For example, with A = "abcd" and B = "cdabcdab".Ret...

jing16337305的博客 300

Leetcode——686. Repeated String Match

题目原址 https://leetcode.com/problems/repeated-string-match/description/ 题目描述 Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no...

想当厨子的程序媛 258

LeetCode 686 Repeated String Match

思路 假设重复A字符串k次,使得A.length >= B.length,只需比较此时B是否为A的子串和k+1时B是否为A的子串即可,因为再多了就是重复查找了。利用String/StringBuilder的indexOf来得到是否为子串。 时间复杂度O(n^2) 空间复杂度O(1) 代码 class Solution { public int repeatedStringMatch(...

我要上岸的博客 147

686. Repeated String Match*

686. Repeated String Match* https://leetcode.com/problems/repeated-string-match/ 题目描述 Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it....

珍妮的选择的博客 307
上一篇: leetcode 888. Fair Candy Swap 题解【Weekly Content 98 I】
下一篇: leetcode 833. Find And Replace in String 题解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值