字符串中括号匹配算法

使用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;
 }

你可能感兴趣的:(算法)