欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

括号匹配问题 博客分类: DS & Algorithm 括号匹配 

程序员文章站 2024-03-15 08:56:23
...

括号匹配问题:

 

import java.util.Stack;

public class SymbolMatch {
	
	public boolean check(String str) {
		Stack<Character> s = new Stack<Character>();
		boolean match = true;
		for (int i = 0; i < str.length() && match; i++) {
			try {
				switch (str.charAt(i)) {
					case '(' : 
					case '[' :
					case '{' : s.push(str.charAt(i)); break;
					case ')' : if (s.pop() != '(') match = false; break;
					case ']' : if (s.pop() != '[') match = false; break;
					case '}' : if (s.pop() != '{') match = false; break;
				}
			} catch (Exception e) {
				match = false;
			}
		}
		if (match && !s.isEmpty())
			match = false;
		
		return match;
	}
	
	public static void main(String[] args) {
		SymbolMatch sm = new SymbolMatch();
		System.out.println("(: " + sm.check("("));
		System.out.println("a(bc[d])e{fd}: " + sm.check("a(bc[d])e{fd}"));
		System.out.println("a(bc]d: " + sm.check("a(bc]d"));
		System.out.println("a(b(c)d: " + sm.check("a(b(c)d"));
		System.out.println("a(b)c)d: " + sm.check("a(b)c)d"));
	}
}
相关标签: 括号匹配