leetcode 459、重复的子字符串

题目大意:

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

代码:

class Solution {
    public boolean repeat(String s,String ss) {//判断s是否为ss重复构成
		int len = ss.length();
		int group = s.length() / ss.length();
		for(int i = 0; i < group; i++) {
			String tmp = s.substring(i * len,(i + 1) * len);
			if(!ss.equals(tmp))return false;
		}
		return true;
	}
	
	public boolean repeatedSubstringPattern(String s) {
		int length = s.length();
        char last = s.charAt(s.length() - 1);
        for(int i = 0; i < s.length() / 2; i++) {
        	if(s.charAt(i) == last && length % (i + 1) == 0) {
        		String ss = s.substring(0,i+1);
        		boolean ans = repeat(s,ss);
        		if(ans) return true;
        	}
        }
		return false;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章