Algorithm I 筆記撰寫計畫 第九天第一題,共兩題。
- 難度:
Easy - 花費時間: 5 min
- 題目: 20. Valid Parentheses
點我開啟限制與範例
限制:
1 <= s.length <= 104sconsists 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% --> |
