棧 394 字串解碼

2021-10-07 14:41:41 字數 705 閱讀 7948

k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證為正整數。

輸入:s = 「3[a]2[bc]」

輸出:「aaabcbc」

輸入:s = 「3[a2[c]]」

輸出:「accaccacc」

建立兩個棧,分別儲存數字和字母。

建立數字和字串進行臨時記錄。

當遍歷到數字時,放入數字中。

當遍歷到字母時,放入字串中。

當遍歷到【時,將數字放入數字棧,並清零。將字串放入字串棧中,並清空。

當遍歷到】時,陣列棧出數字作為重複次數,字串棧出字元加上臨時字串乘重複次數,就是此時的結果。

輔助棧**

public string decodestring

(string s)

//入棧,同時數字和字串臨時記錄都記為0

else

if(c==

'[')

else

if(c==

']')

res =

newstringbuilder

(stack_string.

removelast()

+tmp);}

else

}return res.

tostring()

;}

394 字串解碼

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

394 字串解碼

思路 思路一 使用棧 這種括號或者括號套括號的模式非常適合用棧來解決,設定乙個輔助棧,當遇到 的時候,開始將所有東西推到 棧中,直到遇到 時,開始取棧中的東西。取得方法 先取字元,再取數字,計算得到到的東西再壓入棧中 直到所有 都遍歷完為止 注意點 從棧中取的順序和最終生成結果得順序應該一致 cla...

394 字串解碼

注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k 例如不會出現像 3a 或 2 4 的輸入。輔助棧解法 遍歷字串 s 中每個字元 c 當 c 為數字時,將數字字元轉化為...