Menu
CoddyTech

String Compression

Otrzymujesz ciąg s złożony z angielskich liter. Skompresuj go: zastąp każdy ciąg dwóch lub więcej takich samych liter występujących po sobie tą literą, po której podaj długość ciągu, a pojedynczą literę pozostaw bez zmian. Zatem aabccc staje się a2bc3. Zwróć skompresowany ciąg.

Wielkie i małe litery są różnymi literami: aA to dwa ciągi o długości 1.

Funkcja

compress(s: string) → string
sstring
ciąg znaków do skompresowania, wyłącznie litery angielskie
Zwracastring
skompresowany ciąg, w którym każda sekwencja jest zapisana jako jej litera, a jeśli jej długość jest większa niż 1, także jako jej długość

Ograniczenia

  • 1 ≤ s.length ≤ 2 × 104
  • s zawiera wyłącznie angielskie litery, od a do z oraz od A do Z.
  • Długość serii zapisuje się w systemie dziesiętnym i może składać się z kilku cyfr.

Przykłady

Wejście
s = "aabccc"
Wyjście
"a2bc3"
Wyjaśnienie
Ciągi to aa, b i ccc. Zmieniają się w a2, b (pojedyncza litera nie dostaje liczby) i c3.
challenge icon

Pytanie dodatkowe

Napisz odwrotną operację: mając skompresowany ciąg znaków, taki jak ab12, odtwórz oryginał. Jak odczytać liczbę składającą się z kilku cyfr?

Zresetuj kod
def compress(s):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argument

s = "aabccc"

Oczekiwany wynik

"a2bc3"