当前位置: 首页 > 后端技术 > Java

LeetCode-459-RepeatingSubstring

时间:2023-04-01 15:18:25 Java

RepeatingSubstring题目描述:给定一个非空字符串,判断它是否可以通过多次重复其中一个子串而形成。给定的字符串只包含小写英文字母,长度不超过10000。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:字符串遍历首先判断特例。当字符串只有一个字符时,不能由重复的子串组成,直接返回false;否则,遍历子串的长度从1到原串长度的一半,然后循环判断:如果当前子串的长度不能除以原串的长度,结果为0,则表示子串不能多次重复构成原串,直接跳过;获取当前待判断子串;根据原串的长度,获取当前子串需要重复多少次才能形成原串;遍历判断原字符串是否可以重复,如果可以,直接返回true,否则,继续判断下一个子串。最后,如果没有子字符串可以重复多次形成原始字符串,则返回false。publicclassLeetCode_459{publicstaticbooleanrepeatedSubstringPattern(Strings){//特殊情况下,当字符串只有一个字符时,不可能重复子串,直接返回falseif(s.length()==1){返回假;}//记录原始字符串的长度intlen=s.length();//遍历子串的长度从1到原串长度的一半for(inti=1;i<=len/2;i++){//如果当前子串的长度不能被除以原串的长度,结果为0,表示子串不能重复多次构成原串,跳过if(len%i!=0){continue;}//获取当前要判断的子串StringrepeatSubStr=s.substring(0,i);布尔allRepeat=true;//当前子串需要重复多少次才能形成原串intcount=len/i;//遍历判断原字符串是否可以重复for(intj=1;j