[编程题]-合法括号序列判断
【题目解析】:
看到这种括号匹配问题同学们应当第一反应使用栈,只要有这个思路,相信这个问题会迎刃而解。
【解题思路】:
1.
碰到
")"
开始弹出栈顶的
"("
,如果此时栈为空,则返回
false 2.
碰到其他内容直接返回
false 3.
字符串结尾时,
栈非空返回
false
【示例代码】:
import java.util.Stack;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
Stack<Character> lefts = new Stack<Character>();
if(A == null || A.length() != n){
return false;
}
for(int i = 0; i < n; i++){
if(A.charAt(i) == '('){
lefts.push(A.charAt(i));
}else if(A.charAt(i) == ')'){
if(lefts.empty()){
return false;
}else{
lefts.pop();
}
}else{
return false;
}
}
if(!lefts.empty()){
return false;
}else{
return true;
}
}
}