Leetcode•Aug 22, 2025
Repeated Substring Pattern
Hazrat Ali
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.
Solution
/**
*
* @param {string} s
* @return {boolean}
*/
const repeatedSubstringPattern = s => {
const canRepeat = (s, rest) => {
if (s.length > rest.length) {
return false;
}
for (let i = 0; i < rest.length; i += s.length) {
if (rest.substr(i, s.length) !== s) {
return false;
}
}
return true;
};
for (let i = 0; i < s.length; i++) {
if (canRepeat(s.substr(0, i + 1), s.substr(i + 1))) {
return true;
}
}
return false;
};