题目描述
给定一个非空的字符串,判定它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不会超过10000
。
示例1: :
输入: “abab”
输出: True
解释: 可由子字符串“ab”重复两次构成。
示例2: :
输入: “aba”
输出: False
示例3: :
输入: “abcabcabcabc”
输出: True
解释: 可由子字符串“abc”重复四次构成,或由子字符串“abcabc”重复两次构成。
思路分析
难度是简单 ,首先就是想到先遍历再存储最后遍历是否为重复字符:
- 遍历出标准子字符串
subStr
(假设重复字符串中无重复字符); - 存储至容器中;
- 遍历之后的字符串,是否满足等长部分相等;
这时,考虑到需要借助数据容器,我们需要set
以判重,由于需要记录顺序,则我们同时借助StringBuilder
来存储subStr
,此时有代码1:
**代码1 子字符串无重复字符 **
public static boolean solution(String s) {
if(s.length() < 2) return false;
List<Character> list = new ArrayList<>(