20. 有效的括號 leetcode每日一題 8.14
阿新 • • 發佈:2020-08-14
今天這道題居然是bilibili筆試的原題
連結
https://leetcode-cn.com/problems/valid-parentheses/
思路
使用一個輔助棧來存放左括號,但遇到有括號時,則棧頂元素出棧,判斷是否對應,若不對應或棧為空,則為false,最後返回棧是否為空
程式碼
class Solution { public boolean isValid(String s) { int n=s.length(); if((n&1)==1){ return false; } Map<Character, Character> pairs = new HashMap<Character, Character>() {{ put(')', '('); put(']', '['); put('}', '{'); }}; Stack<Character> stack=new Stack<>(); for (char ch:s.toCharArray()){ if (pairs.containsKey(ch)) { if (stack.isEmpty() || stack.peek() != pairs.get(ch)) { return false; } stack.pop(); } else { stack.push(ch); } } return stack.isEmpty(); } }