給定乙個經過編碼的字串,返回它解碼後的字串。
編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證為正整數。
你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。
此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入。
建立乙個棧,遍歷字串,當前字母不是『 ] 』,就壓入棧,若是『 ] 』,就將最近的 『 [ 』 之後的子串tmp彈出棧頂,將重複次數num也彈出棧頂,複製後將num * tmp 壓入棧,直到遍歷完成。
class
solution
:def
decodestring
(self, s)
:"""
:param s: str
:return: str
"""stack =
cnt =
0for alpha in s:
cnt +=
1if alpha ==
']':
tmp =
num =
""while stack and stack[-1
]!='[':
tmp =
[stack.pop()]
+ tmp
stack.pop(
)while stack and
'0'<= stack[-1
]<=
'9':
num = stack.pop(
)+ num
stack += tmp *
int(num)
else
:return
''.join(stack)
Leetcode 394 字串解碼
給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不包...
LeetCode 394 字串解碼
給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...
LeetCode 394 字串解碼
給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...