Menu
CoddyTech

Decode String

Ein kodierter String schreibt wiederholten Text als k[text]: text, das k Mal hintereinander geschrieben wird. Gruppen können verschachtelt sein, daher steht 2[a3[b]] für abbbabbb. Gegeben ist ein kodierter String s; gib den dekodierten String zurück.

Buchstaben außerhalb aller Klammern bleiben unverändert. Jede Anzahl ist eine positive ganze Zahl, die direkt vor ihrem [ steht, und Ziffern kommen sonst nirgendwo vor.

Funktion

decodeString(s: string) → string
sstring
die codierte Zeichenfolge
Gibt zurückstring
die dekodierte Zeichenfolge

Einschränkungen

  • 1 ≤ s.length ≤ 104
  • s enthält nur englische Kleinbuchstaben, Ziffern, [ und ].
  • s ist eine gültige Kodierung: Auf jedes [ folgt eine Anzahl und es gibt ein passendes ], und keine Klammern sind leer.
  • Jeder Zählwert k erfüllt 1 ≤ k ≤ 300 und hat keine führende Null.
  • Klammern können höchstens 100 Ebenen tief verschachtelt sein.
  • Die dekodierte Zeichenkette hat höchstens 5 × 104 Zeichen.

Beispiele

Eingabe
s = "2[ab]3[c]x"
Ausgabe
"ababcccx"
Erklärung
2[ab] ergibt abab und 3[c] ergibt ccc. Das x steht außerhalb jeder Klammer und wird unverändert übernommen: ababcccx.
challenge icon

Weiterführende Frage

Die dekodierte Zeichenfolge kann viel länger als die Eingabe sein. Wie würdest du das Zeichen an Position i zurückgeben, ohne die Zeichenfolge zu erstellen, wenn ihre Länge bis zu 10^18 betragen kann?

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

Test #1

Test #2

Test #3

Argument

s = "2[ab]3[c]x"

Erwartete Ausgabe

"ababcccx"