Skip to content

Instantly share code, notes, and snippets.

@izeigerman
Created June 5, 2019 16:41
Show Gist options
  • Save izeigerman/3afe1e5c067a8fd51f6e6f4c8f4915e1 to your computer and use it in GitHub Desktop.
Save izeigerman/3afe1e5c067a8fd51f6e6f4c8f4915e1 to your computer and use it in GitHub Desktop.
class Solution:
def decodeString(self, s: str) -> str:
multipliers = []
sequences = []
last_multiplier = 0
last_sequence = ''
for c in s:
if c.isdigit():
last_multiplier = last_multiplier * 10 + int(c)
elif last_multiplier:
multipliers.append(last_multiplier)
last_multiplier = 0
if c == '[':
sequences.append(last_sequence)
last_sequence = ''
elif c == ']':
prev_sequence = ''
if sequences:
prev_sequence = sequences.pop()
multiplier = multipliers.pop()
last_sequence = prev_sequence + multiplier * last_sequence
elif c.isalpha():
last_sequence += c
return last_sequence
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment