Giriş
Aşağıdaki dizgeyi izleyelim:
AABBCCDDEFFGG
Mektup hariç, her harfin kopyalandığını görebilirsiniz E
. Mektup demek olduğunu That E
olmuştur çoğaltılamaz de- . Bu yüzden, burada yapmamız gereken tek şey, bize şu çoğaltılmamış dizgiyi veren bu işlemi tersine çevirmek.
AABBCCDDEEFFGG
Daha sert bir örnek alalım:
AAAABBBCCCCDD
Eşitsiz sayıda ardışık sayı olduğunu görebilirsiniz B
, bu da bir tanesinin BB
orijinal diziden kopyalandığı anlamına gelir . Bize veren bu mektubun çoğaltmasını kaldırmamız gerekiyor:
AAAABBBBCCCCDD
Meydan okuma
Yalnızca alfabetik karakterlerden oluşan (yalnızca büyük veya yalnızca küçük harflerden oluşan) boş olmayan bir yinelenen dize verildiğinde , çoğaltılmamış dizeyi döndürür. Dize her zaman en az bir tane yinelenen karakterin geleceğini varsayabilirsiniz.
Test durumları
AAABBBCCCCDDDD --> AAAABBBBCCCCDDDD
HEY --> HHEEYY
AAAAAAA --> AAAAAAAA
N --> NN
OOQQO --> OOQQOO
ABBB --> AABBBB
ABBA --> AABBAA
Bu kod golf , yani bayt cinsinden en kısa geçerli gönderim kazanıyor!
ABBB
eşleme AABBBB
değil AABBBBBB
?
A BB B
. Eşleştirilmemiş (ve bu nedenle çoğaltılmamış) karakterlerin, AA BB BB
çoğaltılmamış dizenin olduğu sonuçta çoğaltılması gerekir .
AABBBB
.