首页 > 其他分享 >686. 重复叠加字符串匹配

686. 重复叠加字符串匹配

时间:2023-07-29 10:35:56浏览次数:39  
标签:叠加 示例 重复 ans 字符串 sb 686

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


注意:字符串 "abc" 重复叠加 0 次是 "",重复叠加 1 次是 "abc",重复叠加 2 次是 "abcabc"。


 


示例 1:


输入:a = "abcd", b = "cdabcdab"

输出:3

解释:a 重复叠加三遍后为 "abcdabcdabcd", 此时 b 是其子串。

示例 2:


输入:a = "a", b = "aa"

输出:2

示例 3:


输入:a = "a", b = "a"

输出:1

示例 4:


输入:a = "abc", b = "wxyz"

输出:-1

 


提示:


1 <= a.length <= 104

1 <= b.length <= 104

a 和 b 由小写英文字母组成


来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/repeated-string-match

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public int repeatedStringMatch(String a, String b) {
        StringBuilder sb = new StringBuilder();
        int ans = 0;
        int max = 2 * a.length() + b.length();
        while (sb.length() < max) {
            sb.append(a);
            ans++;
            if (sb.toString().indexOf(b) != -1) return ans;
        }
        return -1;
    }
}

标签:叠加,示例,重复,ans,字符串,sb,686
From: https://blog.51cto.com/u_16202138/6890662

相关文章

  • 导入表T1某字段截取的子字符串到另一张表T2
    第1章、字符串定位和截取--匹配字符的位置--从左往右第一次出现字符.log的位置SELECTINSTR('m/mc/kh.log','.log')FROMT1:--返回8--从右往左第一次出现/的位置SELECTINSTR('m/mc/kh.log','/',-1,1)FROMT1:--返回5--字符串截取,截取从3开始的6位字符......
  • 字符串压缩
    字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:"aabcccccaaa"输出:"a2b1c5a3"示例2:输入:"abbcc......
  • C# 字符串转码后操作二进制文件
    String转码后写入二进制文件,读二进制文件进行解码返回。publicclassBinaryClass{///<summary>///写二进制文件///</summary>///<paramname="binFile"></param>///<paramname="str">&......
  • php字符串超长自动换行
    1.英文字符串超长换行使用系统方法wordwrap2.中文字符串超长换行自行定义方法mb_wordwrap/***Notes:对传入的中文字符串处理,如果字符串超过限定的长度,则自动进行换行*docs:*/functionmb_wordwrap($str,$width=8,$break="\r\n"){......
  • C#将16进制字符串转化为16进制值(进制得转化)
    代码如下:intval16=Convert.ToInt32(val16_Str,16);//val16_Str为16进制字符串2进制、8进制同理 C#的进制转换主要用在串口通讯时候进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数......
  • Leetcode438. 找到字符串中所有字母异位词
    classSolution{public:vector<int>findAnagrams(strings,stringp){unordered_map<char,int>window,hash;vector<int>res;for(autoi:p)hash[i]++;for(inti=0,j=0;i<s.size();i++){......
  • SQL2008 不用for xml 实现拼接字符串
    因为forxml有些特殊符号 不能作为分割符号,所以采用这种方式。如果是SQL2012的话 有自带的函数了--测试数据IFOBJECT_ID('tempdb..#tmp_Orgdata')ISNOTNULLDROPTABLE#tmp_OrgdataGO--GID分组IDSTRCOL字符串SELECTGID,StrColINTO#tmp_Orgdat......
  • Android-定义和获取字符串资源
    resource->values->strings.xml里定义字符串定义单字符串:<stringname="app_name">abc123</string>定义字符串数组:<string-arrayname="map_style_array"><item>MAPBOX_STREETS</item><item>OUTDO......
  • Template <字符串哈希>
    #include<iostream>#include<string>#include<vector>usingnamespacestd;usingULL=unsignedlonglong;//字符串哈希(注意get(l,r)为闭区间,字符串下标从1开始)structStringHash{vector<ULL>h;//哈希数组vector<ULL>p;//p[i]=P......
  • Java 所有子字符串
    Java所有子字符串在Java中,字符串是一种常见的数据类型,它由一串字符组成。在处理字符串时,我们经常需要获取字符串的所有子字符串。子字符串是指从原始字符串中截取出来的一部分字符串。获取所有子字符串的方法Java提供了多种方式来获取一个字符串的所有子字符串。下面我们将介绍......