394 字串解碼

2021-10-08 06:16:16 字數 800 閱讀 4413

注意 k 保證為正整數。你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。

此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入。

輔助棧解法

① 遍歷字串 s 中每個字元 c;

② 當 c 為數字時,將數字字元轉化為數字 multi,用於後續倍數計算;

③ 當 c 為字母時,在 res 尾部新增 c;

④ 當 c 為[時,將當前 multi 和 res 入棧,並分別置空置 0:

⑤ 當 c 為]時,stack 出棧,拼接字串 res = last_res + cur_multi * res,其中:

last_res是上個 [ 到當前 [ 的字串,例如 「3[a2[c]]」 中的 a;

cur_multi是當前 [ 到 ] 內字串的重複倍數,例如 「3[a2[c]]」 中的 2。

⑥ 返回字串 res。

class

solution

else

if(c ==

']')

else res.

(c);

}return res.

tostring();}}

394 字串解碼

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

394 字串解碼

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

394 字串解碼

有乙個多星期沒有刷題,因為在泰州移動總部實習,才剛來不久不敢偷偷準備秋招,現在部門混的差不多了,可以偷偷準備秋招筆試。刷題果然要一直刷啊,要保持手感 今天做題狀態不好,一些api記得也不是很清晰 所以,準備接下來的一段時間需要做好計畫,分好任務和時間段。題目 給定乙個經過編碼的字串,返回它解碼後的字...