题解 | #合法括号序列判断#
合法括号序列判断
http://www.nowcoder.com/questionTerminal/d8acfa0619814b2d98f12c071aef20d4
import java.util.*; public class Parenthesis { public boolean chkParenthesis(String A, int n) { /** //方法一。用count来计数 if(n % 2 == 1) { return false; } int count = 0; for(int i = 0; i < n; i++){ if (A.charAt(i) == '(') { count++; } else if(A.charAt(i) == ')') { if(count < 0) { return false; } count--; } else { count = -1; break; } } if(count == 0) { return true; } else { return false; } */ //方法二:用栈来储存 if(n % 2 == 1) { return false; } Stack<Character> stack = new Stack(); for(char ch: A.toCharArray()){ if (ch == '(') { stack.push(ch); } else if(ch == ')') { if(stack.isEmpty()){ return false; } else if(stack.peek() == '(') { stack.pop(); } } else { return false; } } return stack.isEmpty(); } }