中文english
給出乙個表示式s
,此表示式包括數字,字母以及方括號。在方括號前的數字表示方括號內容的重複次數(括號內的內容可以是字串或另乙個表示式),請將這個表示式展開成乙個字串。
樣例1
輸入: s = abc3[a]
輸出: "abcaaa"
樣例2
輸入: s = 3[2[ad]3[pf]]xyz
輸出: "adadpfpfpfadadpfpfpfadadpfpfpfxyz"
你可以不通過遞迴的方式完成展開嗎?
數字只能出現在「」前面。
輸入測試資料 (每行乙個引數)如何理解測試資料?
棧
classsolution:
"""@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 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...