Valid Parentheses
问题:
Given a string containing just the characters ‘(‘
, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
and ‘]‘
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
思路:
经典栈的应用
我的代码:
public class Solution { public boolean isValid(String s) { if(s == null || s.length() == 0) return true; Stack<Character> stack = new Stack<Character>(); for(int i = 0; i < s.length(); i++) { char c = s.charAt(i); if(isRight(c)) { if(stack.isEmpty()) return false; char left = stack.pop(); if(!isMatch(left,c)) return false; } else { stack.push(c); } } return stack.isEmpty(); } public boolean isMatch(char left, char right) { if((left==‘(‘&&right==‘)‘)||(left==‘[‘&&right==‘]‘)||(left==‘{‘&&right==‘}‘)) return true; return false; } public boolean isRight(char c) { if(c == ‘)‘ || c == ‘]‘ || c == ‘}‘) return true; return false; } }
原文:http://www.cnblogs.com/sunshisonghit/p/4336041.html