Leetcode刷題 394字串解碼

2021-10-06 14:49:54 字數 1248 閱讀 1100

題目:

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

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