0 と 1 の文字列があります。すぐに繰り返される部分文字列として「contiguous-double」を定義します。たとえば、文字列 "011101010101110" は "011 1010 1010 1110" に分割でき、"011(1010)1110" に圧縮できます。
文字列内のすべての連続する double を見つけるための良いアルゴリズムはありますか? 私が思いつくことができる最高のものは、文字列の長さに関して二次です:
def all_contiguous_doubles(s):
for j in range(len(s)):
for i in range(j):
if s[i:j] == s[j:2*j - i]:
print "%s(%s)%s" % (s[:i], s[i:j], s[2*j - i:])