1. 程式人生 > >【LeetCode】686. 重複疊加字串匹配

【LeetCode】686. 重複疊加字串匹配

題目連結https://leetcode-cn.com/problems/repeated-string-match/description/

題目描述

給定兩個字串 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) { string S=A; int k=1; while(S.size()<=10000){ if (S.find(B)!=-1) return k; else{ S+=A;k++; } } return -1; } };