0394. Decode String
Medium | String + Stack | 20 ms (99.12%), 14.2 MB (81.02%)
Source: LeetCode - Decode String GitHub: Solution / Performance
Given an encoded string, return its decoded string.
The encoding rule is: k[encoded_string]
, where the encoded_string
inside the square brackets is being repeated exactly k
times. Note that k
is guaranteed to be a positive integer.
You may assume that the input string is always valid; No extra white spaces, square brackets are well-formed, etc.
Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k
. For example, there won't be input like 3a
or 2[4]
.
Use stack to record the following information in a tuple before the left square bracket [
:
Decoded string as
pre_DecodedStr
n times as
nTimes
When meeting the right square bracket ]
, pop the tuple from the stack. We then concatenate the returned string by pre_DecodedStr + nTimes * cur_DecodedStr
Last updated