分析思路: 对s头部进行切片 组成mylist,myslist*次数等于s即可判断为True 代码: def repeatedSubstringPattern(s): for i in range(1,len(s)): #print(i) mylist = s[0:i] if len(s)%i == 0: num= len(s)//i #print('num',num) if mylist*num == s: return True break else:return False if __name__ == '__main__': s='abab' print(repeatedSubstringPattern(s)) s='ababa' print(repeatedSubstringPattern(s))
运行:
True
False
Process finished with exit code 0
题目:
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: "abab" 输出: True 解释: 可由子字符串 "ab" 重复两次构成。 示例 2: 输入: "aba" 输出: False 示例 3: 输入: "abcabcabcabc" 输出: True 解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)