LeetCode之20. 有效的括號
阿新 • • 發佈:2019-01-03
運用的知識:棧 參考:自定義棧
題目描述:
給定一個只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]" 輸出: false
示例 5:
輸入: "{[]}"
輸出: true
import java.util.Stack; class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<Character>(); for(int i=0;i<s.length();i++) { char c=s.charAt(i); if(c=='(' || c=='[' || c=='{') { stack.push(c); }else { if(stack.isEmpty()) { return false; } char topChar=stack.pop(); if(topChar=='(' && c!=')') { return false; } if(topChar=='[' && c!=']') { return false; } if(topChar=='{' && c!='}') { return false; } } } return stack.isEmpty(); } }