`
eriol
  • 浏览: 407243 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

括号匹配问题

阅读更多

括号匹配问题:

 

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"));
	}
}
1
0
分享到:
评论
1 楼 adam_zs 2013-03-13  
谢谢分享!

相关推荐

    c++括号匹配问题 c++括号匹配问题

    此外,有许多代码编辑器和静态分析工具,如Clang-Tidy,能够自动检测并修正括号匹配问题。 正确处理括号匹配是C++编程的基本功,也是保证代码质量的关键。开发者应养成良好的编码习惯,及时检查和修复括号匹配问题...

    括号匹配问题 数据结构

    括号匹配问题是一种常见的计算机科学问题,主要涉及数据结构和算法的设计。在编程领域,它经常出现在解析表达式、编译器设计、树结构处理等场景。本问题的核心是检查给定的一组括号(通常是圆括号"()"、方括号"[]"和...

    数据结构-括号匹配问题

    在括号匹配问题中,我们通常使用栈来检查一个字符串中的括号是否正确配对。这个问题常见于编译原理、解析器设计和文本编辑器等领域,用于确保代码或表达式的语法正确性。 具体步骤如下: 1. 初始化一个空栈。这个...

    栈的经典应用-括号匹配问题

    用栈实现括号匹配。而且使得操作尽可能简单,所以就之用了基本的进,出栈的操作。

    C语言括号匹配问题解决方法

    C语言括号匹配问题解决方法,给定一个输入的字符串,包含括号(和),能够找出(和)的个数,并指出(或者)不正确的位置。

    数据结构C#语言括号匹配问题全代码

    在编程领域,括号匹配问题是一个经典的数据结构和算法问题,它涉及到字符串处理、栈(Stack)数据结构的运用以及递归或迭代等概念。在本主题中,我们将深入探讨如何使用C#语言来解决这个问题。 首先,我们需要理解...

    表达式的括号匹配检验问题

    括号匹配问题是计算机科学中的一个经典问题,涉及到数据结构和算法的应用。通过使用栈这种数据结构,我们可以有效地解决这个问题。本问题的设计思路清晰,逻辑严密,能够准确地检测表达式中括号的匹配性。

    数据结构的括号匹配问题

    数据结构的括号匹配问题是一个经典的计算机科学议题,主要涉及字符串处理、递归算法和栈数据结构的应用。在编程领域,括号匹配是确保代码逻辑正确性的重要手段,尤其是在解析数学表达式、编译器设计以及XML/JSON等...

    c++使用堆栈实现括号匹配问题

    c++使用堆栈实现括号匹配问题

    数据结构c语言版栈的应用单括号匹配(实验报告)

    该程序利用栈这一数据结构来解决括号匹配问题,它允许括号的嵌套。实验内容包括定义栈的节点类型,理解和运用栈的进栈和出栈操作,以及在实际问题中如何应用栈。 栈是一种具有后进先出(LIFO)特性的数据结构,常...

    数据结构的括号匹配问题代码

    数据结构的括号匹配问题是一个经典的计算机科学问题,主要涉及到字符串处理、递归算法和栈数据结构的应用。在编程领域,括号匹配通常用于检查一个字符串中的括号是否正确配对,例如在数学表达式、XML或JSON格式的...

    求解最长括号匹配问题

    这是典型的动态规划求解最长括号匹配问题。

    数据结构括号匹配问题,一篇文章快速了解!

    数据结构括号匹配问题在计算机科学中是一个经典且重要的议题,尤其在算法设计与解析上下文中扮演着核心角色。括号匹配通常涉及到字符串处理、编译原理和树形结构等概念,是理解和解决复杂编程问题的基础。这篇文章将...

    C实现的括号匹配问题,主要由栈实现

    ### C语言实现的括号匹配问题解析 在计算机科学领域,括号匹配问题是一个常见的算法题目,主要用于测试字符串中各种括号(如圆括号()、方括号[]、花括号{})是否正确配对。本文将深入探讨一个基于C语言实现的括号...

    SWUST 数据结构(括号匹配问题)

    本文主要讨论了如何使用链栈解决括号匹配问题,这是数据结构中的一个重要应用。链栈是一种特殊的线性链表,其特点是后进先出(LIFO),在处理括号匹配问题时能有效追踪和检查括号的正确对应关系。 1. **链栈定义**...

Global site tag (gtag.js) - Google Analytics