我有一個字符串:縮短字符串
a = babababbaaaaababbbab
,它需要被縮短,所以它看起來是這樣的:
(ba)3(b)2(a)5ba(b)3ab
所以基本上它需要採取所有重複的字符,寫多少他們重複而不是打印它們的次數。 我成功地做到一半這樣的:
from itertools import groupby
a = 'babababbaaaaababbbab'
grouped = ["".join(grp) for patt,grp in groupby(a)]
solved = [str(len(i)) + i[0] for i in grouped if len(i) >= 2]
但這只是做到這一點對於那些重複的,但不是模式字符。我知道我可以通過在字符串中查找'ab'模式來做到這一點,但這需要對每一個可能的字符串都是可行的。有沒有人遇到類似的東西?
這可能是相關的:https://stackoverflow.com/questions/11090289/find-longest-repetitive-sequence-in-a-string –
這是不明確的。 'aaabbbaaabbb'的預期輸出是什麼? (a)3(b)3(a)3(b)3'還是'(aaabbb)2'? –
@SvenMarnach它是(3)b(3)。 – Nenad