Menu
CoddyTech

String Compression

İngilizce harflerden oluşan bir s dizgesi veriliyor. Sıkıştır: Art arda gelen iki veya daha fazla aynı harften oluşan her diziyi, bu harfin ardından dizinin uzunluğunu yazarak değiştir ve tek başına duran harfleri olduğu gibi bırak. Örneğin, aabccc, a2bc3 olur. Sıkıştırılmış dizgeyi döndür.

Büyük ve küçük harfler farklı harflerdir: aA, uzunluğu 1 olan iki dizidir.

Fonksiyon

compress(s: string) → string
sstring
sıkıştırılacak dize, yalnızca İngilizce harfler
Döndürürstring
birden fazla karakter içeren her ardışık dizi, harfi ve uzunluğu yazılarak sıkıştırılmış dize

Kısıtlar

  • 1 ≤ s.length ≤ 2 × 104
  • s yalnızca İngilizce harfleri, a'dan z'ye ve A'dan Z'ye kadar olan harfleri içerir.
  • Tekrar uzunluğu ondalık olarak yazılır ve birden fazla basamaktan oluşabilir.

Örnekler

Girdi
s = "aabccc"
Çıktı
"a2bc3"
Açıklama
Diziler aa, b ve ccc. Bunlar a2, b (tek başına olan bir harfin sayısı yazılmaz) ve c3 hâline gelir.
challenge icon

Ek soru

Tersini yaz: ab12 gibi sıkıştırılmış bir dizge verildiğinde özgününü yeniden oluştur. Birden fazla basamağı olan sayıyı nasıl okursun?

Kodu sıfırla
def compress(s):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

s = "aabccc"

Beklenen Çıktı

"a2bc3"