0
点赞
收藏
分享

微信扫一扫

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 由小写英文字母组成


链接: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;
    }
}

举报

相关推荐

0 条评论