leetcode.20 有效的括號
阿新 • • 發佈:2018-11-14
給定一個只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()" 輸出: true
示例 2:
輸入: "()[]{}" 輸出: true
示例 3:
輸入: "(]" 輸出: false
示例 4:
輸入: "([)]" 輸出: false
示例 5:
輸入: "{[]}" 輸出: true
思路:利用棧的先進後出的特性,當遍歷字串遇到(,{,[,使用棧儲存對應的字元 ),},],並且每一次判斷棧是否為空或者棧彈出的是否對應相應的字元。
class Solution { public boolean isValid(String s) { if(s.isEmpty()) return true; Stack<Character> a = new Stack(); for(char c : s.toCharArray()){ if(c == '('){ a.push(')'); }else if(c == '{'){ a.push('}'); }else if(c == '['){ a.push(']'); }else if(a.isEmpty() || a.pop != c){ return false; } } return a.isEmpty(); } }