做电商搜素材网站都是什么,火星时代教育培训机构学费多少,网站设计报价单模板,邢台建设企业网站价格给定一个非空的字符串 s #xff0c;检查是否可以通过由它的一个子串重复多次构成。
示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “abcabcabcabc” 输出: true 解释: 可由子串 “ab…给定一个非空的字符串 s 检查是否可以通过由它的一个子串重复多次构成。
示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “abcabcabcabc” 输出: true 解释: 可由子串 “abc” 重复四次构成。 (或子串 abcabc重复两次构成。) 解答
class Solution {public boolean repeatedSubstringPattern(String s) {if(s.length()1) return false;StringBuffer sb new StringBuffer();sb.append(s.charAt(0)); for(int i1; is.length();i){ //控制pattern长度String min_sub sb.toString();int left_length s.length() - min_sub.length();if((left_length % min_sub.length()) ! 0){ // 如果剩余长度不能被min_sub长度整除更新patternsb.append(s.charAt(i));continue;}else{int cycle left_length / min_sub.length(); // 能被整除就判断整个字符串是否由该pattern组成StringBuilder temp new StringBuilder(sb); // 注意不要StringBuilder temp sb, 会导致两个引用地址相同更新temp也会改变sbfor(int k0; kcycle; k){temp.append(sb);}if(s.equals(temp.toString()))return true;elsesb.append(s.charAt(i));}}return false;}
}