2

具体的には、文字列の評判を検出する機能が欲しい

繰り返し("abcabcabc") abc

繰り返し("ああああああ")

繰り返し("アババブ") ab

繰り返し("abcd") abcd

私は再帰的な方法でそれを行うことを考えていますが、私は混乱しています

事前に助けてくれてありがとう!

私は次のようなことを試みています

def repetition(r):
    if len(r) == 2:
       if r[0] == r[1]:
          return r[0]
    half = len(r) / 2
    repetition(r[:half])
    if r[:half] == r[half:]:
       return r[:half]
4

2 に答える 2

1

おそらくこれを行うためのより良い方法がありますが、私の最初の考えは次のとおりです。

def repetition(string):
    substring = ''
    for character in string:
        substring += character
        if len(string) % len(substring) == 0:
            if (len(string) / len(substring)) * substring == string:
                return substring
于 2013-11-04T23:21:05.777 に答える