0459 - Repeated Substring Pattern
Description (leetcode)
Given a string s, check if it can be constructed by taking a substring of it and appending multiple copies of the substring together.
Example 1:
Input: s = “abab”
Output: true
Explanation: It is the substring “ab” twice.
Example 2:
Input: s = “aba”
Output: false
Example 3:
Input: s = “abcabcabcabc”
Output: true
Explanation: It is the substring “abc” four times or the substring “abcabc” twice.
Constraints:
- 1 <= s.length <= 104
sconsists of lowercase English letters.
submission
click to reveal
impl Solution {
// see: https://leetcode.com/problems/repeated-substring-pattern/discuss/826135/C%2B%2B-O(N)-time-or-One-liner-without-KMP-Explained-or-Beats-99
pub fn repeated_substring_pattern(s: String) -> bool {
s.repeat(2)[1..s.len() * 2 - 1].contains(&s)
}
}