394 字串解碼

2021-10-07 14:25:06 字數 1357 閱讀 3162

思路

思路一:使用棧

這種括號或者括號套括號的模式非常適合用棧來解決,

設定乙個輔助棧,當遇到』[『的時候,開始將所有東西推到

棧中,直到遇到』]『時,開始取棧中的東西。

取得方法:先取字元,再取數字,計算得到到的東西再壓入棧中

直到所有』]'都遍歷完為止

注意點:從棧中取的順序和最終生成結果得順序應該一致

**

class

solution

// stack.push(tmp.tostring());

// break;

// }

while

(ilength()

) stack.

push

(tmp.

tostring()

);}//存數字

else

if(character.

isdigit

(s.charat

(i))

) stack.

push

(string.

valueof

(num));

}//存'['

else

if(s.

charat

(i)==

'[')

//開始處理

else

if(s.

charat

(i)==

']')

//除去'['

stack.

pop();

//得到數字

string num = stack.

pop();

int n = integer.

valueof

(num)

;//製造字串

stringbuffer tmp =

newstringbuffer()

;while

(n--

>0)

stack.

push

(tmp.

tostring()

);//測試

i++;}

} stringbuffer result =

newstringbuffer()

;while

(stack.

isempty()

==false

)return result.

tostring()

;}}

394 字串解碼

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

394 字串解碼

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

394 字串解碼

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