由於括號內巢狀括號,與棧的先進後出一致。
class
solution
(object)
: def decodestring
(self, s)
:"""
:type s: str
:rtype: str
"""stack, multi, res =
,0,""
#stack用於實現儲存括號的巢狀關係
#multi用於儲存括號前的係數
#res用於返回結果
for c in s:
if c ==
"[":
#當遇見左括號,用棧儲存[係數,括號前的結果]
stack.
([multi, res]
) multi, res =0,
"" elif c ==
"]":
#把整個括號內的結果取出
curr_multi, curr_res = stack.
pop(-1
) res = curr_res + curr_multi * res
elif c.
isnumeric()
: multi = multi *10+
int(c)
else
: res += c
return res
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 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...