class Solution {
public boolean repeatedSubstringPattern(String s) {
//1、若字符串S从头取一段放到尾部,仍能组成原字符串S,那么S是重复的。
//证明:设字符串由ax组成,a代表一段字符串,x中包含了位置的字符串以及未知长度
//若ax=xa,则x=a或aa或aaa...,因此不管是哪种,S都是循环的。
//2、这种方法程序上实现较复杂,评论区有更为简单的。就是:
//如果S和S拼接在一起组成的新串SS中间(不含开头和结尾),含有原字符串S
//则是重复的。证明略。
return (s+s).substring(1,s.length()*2-1).indexOf(s)!=-1;
//这里substring是包含左边不包右边的。
}
}
leetcode No.459重复的子字符串
最新推荐文章于 2023-01-06 09:52:10 发布