題目:
給定乙個經過編碼的字串,返回它解碼後的字串。
編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。
注意 k 保證為正整數。
你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。
此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,
例如不會出現像 3a 或 2[4] 的輸入。
思路:這個題利用棧的思想就可以簡單的求解
當遇到數字時,暫時記錄num
當遇到字母時,將字母加入字串res
當遇到『[』時,將數字和此時的字串入棧,並將num置0和str置空
當遇到『]『時,pop乙個元素出棧,並對其重複 num次
示例:s = 「3[a]2[bc]」, 返回 「aaabcbc」.
s = 「3[a2[c]]」, 返回 「accaccacc」.
s = 「2[abc]3[cd]ef」, 返回 「abcabccdcdcdef」.
class
solution
(object):
defdecodestring
(self, s)
:"""
:type s: str
:rtype: str
"""res =
"" stack =
num =
0for i in s:
if i.isdigit():
num = num *10+
int(i)
elif i ==
'[':
(res,num)
) res,num ="",
0elif i ==
']':
top = stack.pop(
) res = top[0]
+ top[1]
* res
else
: res += i
return res
if __name__ ==
'__main__'
: so = solution(
) res = so.decodestring(
"3[a2[c]]"
)print
(res)
leetcode題 394 字串解碼 中等)
一 題目描述 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 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...