package com.learn.algorithm.bracketValid;
import java.util.Stack;
/**
* 栈的应用
* 表达式括号配对验证
*/
public class Brackets {
public static void main(String[] args) {
String s = "(12-{5+6-3[2*(3+5)]/6})";
System.out.println(valid(s));
}
/**
* 验证字符串表达式的 括号是否配对
* @param s
* @return
*/
public static boolean valid(String s){
Stack<Character> stack= new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
switch (s.charAt(i)) {
case '(':
case '{':
case '[':
stack.push(s.charAt(i));
break;
case ')':
if (stack.isEmpty() || stack.pop()!='(') {
return false;
}
break;
case '}':
if ( stack.isEmpty() || stack.pop()!='{' ) {
return false;
}
break;
case ']':
if (stack.isEmpty() || stack.pop()!='[') {
return false;
}
break;
default:
break;
}
}
if (stack.isEmpty()) {
return true;
}else{
return false;
}
}
}
以上代码。