【leetcode】459. Repeated Substring Pattern【E】


Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 10000.

Example 1:

Input: "abab"

Output: True

Explanation: It's the substring "ab" twice.

Example 2:

Input: "aba"

Output: False

Example 3:

Input: "abcabcabcabc"

Output: True

Explanation: It's the substring "abc" four times. (And the substring "abcabc" twice.)

Subscribe to see which companies asked this question


就是從1開始,對每個長度的子串,找是不是按照它重複的

如果長度不能被整除,跳過

判斷的時候利用集合,還是很好用的




class Solution(object):
    def repeatedSubstringPattern(self, str):
        
        l = len(str)
        
        for i in xrange(1,l):
            if l % i != 0:
                continue
            t = str[:i]
            
            #print t
            
            s = set(str.split(t))
            #print s
            
            if len(s) == 1:
                return True
        return False


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