前言
持续更新了
正文
问题来源
本问题来自leetcode上的459题。
问题描述
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
示例 1:
输入: "abab"
输出: True
解释: 可由子字符串 "ab" 重复两次构成。
示例 2:
输入: "aba"
输出: False
示例 3:
输入: "abcabcabcabc"
输出: True
解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)
分析:
func repeatedSubstringPattern(s string) bool {
n := len(s)
for i := 1; i * 2 <= n; i++ {
if n % i == 0 {
match := true
for j := i; j < n; j++ {
if s[j] != s[j - i] {
match = false
break
}
}
if match {
return true
}
}
}
return false
}
class Solution {
public boolean repeatedSubstringPattern(String s) {
return (s + s).indexOf(s, 1) != s.length();
}
}
总结:
勤思考。
结语
不管怎么样好好加油。