LeetCode 686 重複疊加字串匹配

2021-09-24 19:03:26 字數 470 閱讀 4210

題目描述:

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

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

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

注意:a 與 b 字串的長度在1和10000區間範圍內。

演算法思想:雙指標演算法,設定i為起始指標,遍歷a中所有位置,j指向b當前的字元。

此題類似於重複字串,採用週期性的原理:f(x+t)=f(x)。

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 ...