短縮:私は、文字列持つ文字列
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それはa(3)b(3)です。 – Nenad