leetcode394 字串解碼

2021-09-26 20:03:58 字數 930 閱讀 2815

給定乙個經過編碼的字串,返回它解碼後的字串。

編碼規則為: 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 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...