Algorithm I 筆記撰寫計畫 第九天第一題,共兩題。
- 難度:
Easy
- 花費時間: 5 min
- 題目: 20. Valid Parentheses
點我開啟限制與範例
限制:
1 <= s.length <= 104
s
consists of parentheses only'()[]{}'
.
Example 1:
1 | Input: s = "()" |
Example 2:
1 | Input: s = "()[]{}" |
Example 3:
1 | Input: s = "(]" |
筆記
這題要訓練 stack
的運用,解題步驟如下:
- 建立一個
stack
,運用他LIFO
的特性,我們可以很好的對剛插入的值進行比較。 - 遍歷
s
- 遇到左括弧(
'(', '[', '{'
),都塞進去stack
- 遇到右括弧(
')', ']', '}'
),就檢查stack
最後一個值,- 如果一樣,就把這個值刪掉(
pop()
) - 如果不一樣,代表這個字串不合法,回傳
false
- 如果一樣,就把這個值刪掉(
- 最後檢查
stack
裡還有沒有值,有就傳false
,沒有就傳true
Java iterative solution.
1 | class Solution { |
成績
<!-- Language | Runtime | Beats | Memory Usage | Beats |
---|---|---|---|---|
Java | 1 ms | 80.63% | 43.9 MB | 73.27% |
TypeScript | 77 ms | 95.35% | 45.4 MB | 22.74% --> |