栈的应用 -- 表达式括号配对验证
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; } } }
以上代码。