我有一串0和1。将“连续双精度”定义为立即重复的子字符串。例如,字符串“011101010101110”可以分解为“011 1010 1010 1110”,可以压缩为“011(1010)1110”。
是否有一个很好的算法来查找字符串中的所有连续双精度数?我能想到的最好的结果是关于字符串长度的二次方:
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:])