leetcode : Valid Parentheses
runtime 0 ms, beats 100% of cpp submissions
O(n) solution with explanation
tags: stack
🔗 link
📖 description
給定一個包含括號的字串,判斷該字串是否合法 (同種類的括號要互相配對)。
ex. "()" -> 合法 "()[]{}" -> 合法 "(]" -> 不合法
🧠 solution
我們無法直接看下一個是不是配對好的字元
ex. "({[]})" -> 合法
但觀察過合法字串的組合方式,就可以大致上發現規律,如果一個組成方式是合法的,則表示在 () 之間,一定也是個合法的組成方式 (包含空字串),遇到成對的括號時就消除,如此一來就可以使用 stack 的架構來完成這個操作。
⏳ time complexity
遍歷字串,時間複雜度 O(n)
總時間複雜度 O(n)
📝 code
1 | class Solution { |