題目描述:
給定乙個經過編碼的字串,返回它解碼後的字串。
編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證為正整數。
你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。
此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入。
示例 1:
輸入:s = 「3[a]2[bc]」
輸出:「aaabcbc」
示例 2:
輸入:s = 「3[a2[c]]」
輸出:「accaccacc」
示例 3:
輸入:s = 「2[abc]3[cd]ef」
輸出:「abcabccdcdcdef」
示例 4:
輸入:s = 「abc3[cd]xyz」
輸出:「abccdcdcdxyz」
方法1:
主要思路:參考**
(1)使用棧來解壓中括號中的內容;
(2)乙個棧用於儲存字串,乙個棧用於儲存數字;
(3)根據遇到的中括號的左括號或右括號,執行不同的操作;
(4)遇到左括號,就把當前解析出來的內容壓入到對應的兩個棧中;
(5)遇到右括號,就把之前的字串和數字拿出來進行解壓,既去除當前左括號對應的字串的壓縮;
class
solution
//解析字串
elseif(
(ch>=
'a'&&ch<=
'z')
||(ch>=
'a'&&ch<=
'z')
)//說明是新的一層
else
if(ch==
'[')
//可以將當前層解壓出來
else
if(ch==
']')
str=strs.
top();
strs.
pop();
}}return str;}}
;
394 字串解碼
給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...
394 字串解碼
思路 思路一 使用棧 這種括號或者括號套括號的模式非常適合用棧來解決,設定乙個輔助棧,當遇到 的時候,開始將所有東西推到 棧中,直到遇到 時,開始取棧中的東西。取得方法 先取字元,再取數字,計算得到到的東西再壓入棧中 直到所有 都遍歷完為止 注意點 從棧中取的順序和最終生成結果得順序應該一致 cla...
394 字串解碼
注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k 例如不會出現像 3a 或 2 4 的輸入。輔助棧解法 遍歷字串 s 中每個字元 c 當 c 為數字時,將數字字元轉化為...