給定一個非空的字符串,判斷它是否可以由它的一個子串重復多次構成。給定的字符串只含有小寫英文字母,并且長度不超過10000。
示例 1:
輸入: “abab”
輸出: True
解釋: 可由子字符串 “ab” 重復兩次構成。
代碼
class Solution {public boolean repeatedSubstringPattern(String s) {int n=s.length();for(int i=n/2;i>0;i--)//窮舉可能的長度{if(n%i==0){//不能分成長度相等的子串boolean flag=false;for(int j=0;j<i;j++)//判斷是否滿足重復子串的條件{int len=i;while (j+len<n&&s.charAt(j)==s.charAt(j+len)) {len+=i;}if(j+len<n&&s.charAt(j)!=s.charAt(j+len)) {flag=true;break;}}if(!flag) return true;}}return false;}
}