Welcome to Subscribe On Youtube

459. Repeated Substring Pattern

Description

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
  • s consists of lowercase English letters.

Solutions

  • class Solution {
        public boolean repeatedSubstringPattern(String s) {
            String str = s + s;
            return str.substring(1, str.length() - 1).contains(s);
        }
    }
    
    
  • class Solution {
    public:
        bool repeatedSubstringPattern(string s) {
            return (s + s).find(s, 1) < s.size();
        }
    };
    
  • class Solution:
        def repeatedSubstringPattern(self, s: str) -> bool:
            return (s + s).index(s, 1) < len(s)
    
    
  • func repeatedSubstringPattern(s string) bool {
    	return strings.Index(s[1:]+s, s) < len(s)-1
    }
    
  • function repeatedSubstringPattern(s: string): boolean {
        return (s + s).slice(1, (s.length << 1) - 1).includes(s);
    }
    
    
  • impl Solution {
        pub fn repeated_substring_pattern(s: String) -> bool {
            (s.clone() + &s)[1..s.len() * 2 - 1].contains(&s)
        }
    }
    
    

All Problems

All Solutions