LeetCode 686 重複疊加字串匹配

2021-09-01 20:40:47 字數 608 閱讀 3724

給定兩個字串 a 和 b, 尋找重複疊加字串a的最小次數,使得字串b成為疊加後的字串a的子串,如果不存在則返回 -1。

舉個例子,a = 「abcd」,b = 「cdabcdab」。

答案為 3, 因為 a 重複疊加三遍後為 「abcdabcdabcd」,此時 b 是其子串;a 重複疊加兩遍後為"abcdabcd",b 並不是其子串。

注意:

ab字串的長度在1和10000區間範圍內。

解答:

生成a字串的一次重複、兩次重複……,直到出現b字串為止。

最大迴圈次數為a字串的n+2倍,即首位兩次不完全重複+n次完全重複。當超出迴圈限制後,返回-1表示未找到。

實際只有a的重複字串長度大於b的字串長度時,才可能出現b子字串;所以應該生成長度大於b的字串長度的字串後再進行子串判斷。

但是我沒懶得寫了。

class

solution

c.(a);

}return-1

;}}

LeetCode 686 重複疊加字串匹配

題目描述 給定兩個字串 a 和 b,尋找重複疊加字串a的最小次數,使得字串b成為疊加後的字串a的子串,如果不存在則返回 1。舉個例子,a abcd b cdabcdab 答案為 3,因為 a 重複疊加三遍後為 abcdabcdabcd 此時 b 是其子串 a 重複疊加兩遍後為 abcdabcd b ...

LeetCode 686 重複疊加字串匹配

給定兩個字串 a 和 b,尋找重複疊加字串a的最小次數,使得字串b成為疊加後的字串a的子串,如果不存在則返回 1。舉個例子,a abcd b cdabcdab 答案為 3,因為 a 重複疊加三遍後為 abcdabcdabcd 此時 b 是其子串 a 重複疊加兩遍後為 abcdabcd b 並不是其子...

686 重複疊加字串匹配

題目描述 給定兩個字串 a 和 b,尋找重複疊加字串a的最小次數,使得字串b成為疊加後的字串a的子串,如果不存在則返回 1。舉個例子,a abcd b cdabcdab 答案為 3,因為 a 重複疊加三遍後為 abcdabcdabcd 此時 b 是其子串 a 重複疊加兩遍後為 abcdabcd b ...