394. Decode String - Medium
前往題目
想法
- 看到括號第一直覺是用
stack
- 可能可以用兩個
stack
,一個存數字,一個存符號
思路
這道題看了解答還是花了我兩小時左右,都在處理資料,而不是邏輯😂Java
處理資料之間的轉換真的是麻煩
- 遇到右括號以外的符號或數字的時候直接
push
到stack
裡面就好 - 遇到右括號就把
[]
裡的字符都存起來,然後再把數字k
也存起來 - 把字符複製
k
次存進結果 - 繼續疊代直到把每個字符都檢查完
Code
主要參考了Neetcode
大大和討論區的解答
利用stack
的特性,可以很巧妙的把nested encoded string
放一起然後複製,例如3[a2[c]]
會變為accaccacc
,演算法要能夠存好cc
,然後遇到a
的時候可以附在後面。原因就是因為前面的結果會push
回同樣的stack
2024/04/29
- 看了code才想起解法
2024/08/19
- 知道用
stack
,但邏輯部分沒能在時間內想出來 - 看了之前寫的
code
後可以快速寫出和理解
394. Decode String - Medium
https://f88083.github.io/2023/12/20/394-Decode-String-Medium/