使用Stack实现括号匹配,例如([[]()]) 这样的字符串,每次遇到 ] 或是)会与当前栈顶元素相匹配,若匹配则弹出栈顶元素,否则匹配失败
public boolean isMatch(Stack<String> tempStack,String p) {
for(int i=0;i<p.length();i++) {
if(p.charAt(i)=='('||p.charAt(i)=='[') {
tempStack.push(p.charAt(i)+"");
} else {
if((p.charAt(i)+"").equals(")")){
if((tempStack.peek()+"").equals("(")) {
tempStack.pop();
} else {
return false;
}
}
if((p.charAt(i)+"").equals("]")){
if((tempStack.peek()+"").equals("[")) {
tempStack.pop();
} else {
return false;
}
}
}
}
return true;
}