主題

LeetCode - 459. Repeated Substring Pattern 解題心得

Not In My Back Yard | 2020-10-27 00:00:02

題目連結:


題目意譯:
給定一個非空字串,判斷它是否可以藉由取出其中的一個子字串並且將該子字串複製多次接在一起而建出。你可以假設給定的字串只由小寫英文字母組成,且其長度不超過 10000 個字元。



範例測資:
範例 1:
輸入: "abab"
輸出: True
解釋: 恰好是由兩個子字串 "ab" 組成。

範例 2:
輸入: "aba"
輸出: False

範例 3:
輸入: "abcabcabcabc"
輸出: True
解釋: 恰好是由四個子字串 "abc" 組成(同時也是兩個 "abcabc")。


解題思維:
參見此題的作法,該題是要最大化 n 值使得字串中的 n 個相同的子字串連在一起會組成原字串。

而本題只需要看能不能取出子字串能夠組成原字串。所以根據上題若得出 n = 1 ,則代表子字串必須等於原字串。並依照本題的規則子字串應當重複(也就是 n ≧ 2),所以要輸出假(false);反之,如果有找到 n ≧ 2,則輸出真(true)。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
28 巴幣: 0