Повтор подстрок
Записать строку, алфавит которой состоит из 4 букв(a,b,c,d), в форме с количеством повторов. Вложенность подстрок приветствуется.
Примеры:
abbbcddaa становится ab3cd2a2
abcabcabcd -> (abc)3d
abbabb -> (ab2)2
ddddabcabccabccabccabc -> d4ab(cabc)4
Сам начал делать, но что-то сложность начинает расти. Как решить наиболее оптимально?
def compress(s):
for j in range(len(s)):
for i in range(j+1, len(s)):
if s[j] == s[i]:
diff = i - j
ssum = 1
for k in range(i, len(s), diff):
if s[j:i] != s[k:k+diff]:
break
ssum += 1
if ssum > 1:
print(s[j:i], ssum, "times")
return s