Menu
CoddyTech

String Compression

Du erhältst eine Zeichenfolge s aus englischen Buchstaben. Komprimiere sie: Ersetze jede Folge von zwei oder mehr gleichen Buchstaben hintereinander durch diesen Buchstaben, gefolgt von der Länge der Folge, und lasse einen einzelnen Buchstaben unverändert. So wird aabccc zu a2bc3. Gib die komprimierte Zeichenfolge zurück.

Groß- und Kleinbuchstaben sind unterschiedliche Buchstaben: aA besteht aus zwei Folgen der Länge 1.

Funktion

compress(s: string) → string
sstring
die zu komprimierende Zeichenfolge, nur englische Buchstaben
Gibt zurückstring
die komprimierte Zeichenfolge, wobei jede Folge als ihr Buchstabe gefolgt von ihrer Länge geschrieben wird, wenn die Länge größer als 1 ist

Einschränkungen

  • 1 ≤ s.length ≤ 2 × 104
  • s enthält nur englische Buchstaben, a bis z und A bis Z.
  • Eine Lauflänge wird dezimal geschrieben und kann mehrere Ziffern haben.

Beispiele

Eingabe
s = "aabccc"
Ausgabe
"a2bc3"
Erklärung
Die Folgen sind aa, b und ccc. Sie werden zu a2, b (ein einzelner Buchstabe erhält keine Anzahl) und c3.
challenge icon

Weiterführende Frage

Schreibe die Umkehrung: Rekonstruiere aus einer komprimierten Zeichenfolge wie ab12 das Original. Wie liest du eine Anzahl, die aus mehreren Ziffern besteht?

Code zurücksetzen
def compress(s):
    # Schreibe hier Code

Test #1

Test #2

Test #3

Argument

s = "aabccc"

Erwartete Ausgabe

"a2bc3"