575 字串解碼

2022-02-14 21:23:35 字數 1184 閱讀 2053

中文english

給出乙個表示式s,此表示式包括數字,字母以及方括號。在方括號前的數字表示方括號內容的重複次數(括號內的內容可以是字串或另乙個表示式),請將這個表示式展開成乙個字串。

樣例1

輸入: s = abc3[a]

輸出: "abcaaa"

樣例2

輸入: s = 3[2[ad]3[pf]]xyz

輸出: "adadpfpfpfadadpfpfpfadadpfpfpfxyz"

你可以不通過遞迴的方式完成展開嗎?

數字只能出現在「」前面。

輸入測試資料 (每行乙個引數)如何理解測試資料?

class

solution:

"""@param s: an expression includes numbers, letters and brackets

@return: a

string

"""def expressionexpand(self, ss):

# write your code here

stack =

#分四種,乙個是[,乙個是],乙個是數字,乙個是字元

for s in

ss:

if s != ']'

:

continue

temp_array =

if s == ']'

: #根據最後乙個元素判斷是否到終點

while stack[-1] != '['

:

#此時已經到[

stack.pop()

repeat = ''

while stack and stack[-1

].isdigit():

repeat +=stack.pop()

temp_array = temp_array[:: -1]*int(repeat[:: -1

]) stack.extend(temp_array)

return

''.join(stack)

三次過 Lintcode 575 字串解碼

給出乙個表示式s,此表示式包括數字,字母以及方括號。在方括號前的數字表示方括號內容的重複次數 括號內的內容可以是字串或另乙個表示式 請將這個表示式展開成乙個字串。樣例1 輸入 s abc3 a 輸出 abcaaa 樣例2 輸入 s 3 2 ad 3 pf xyz 輸出 adadpfpfpfadadp...

167 字串解碼

題目描述 給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為...

394 字串解碼

給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...