Skip to content

Latest commit

 

History

History
75 lines (54 loc) · 1.21 KB

20211101.md

File metadata and controls

75 lines (54 loc) · 1.21 KB

Algorithm

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.

Solution

public boolean repeatedSubstringPattern(String str) {
     String s = str + str;
     return s.substring(1, s.length() - 1).contains(str);
}
public boolean repeatedSubstringPattern(String str) {
  	int l = str.length();
  	for(int i=l/2;i>=1;i--) {
  		if(l%i==0) {
  			int m = l/i;
  			String subS = str.substring(0,i);
  			StringBuilder sb = new StringBuilder();
  			for(int j=0;j<m;j++){
  				sb.append(subS);
  			}
  			if(sb.toString().equals(str)){
          return true;
        }
  		}
  	}
  	return false;
}

Discuss

Review

Tip

Share