LeetcodeAug 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;
};




Comments