java 中的括号匹配问题

原创 2015年11月19日 17:01:50

用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉
例如:
..(..[..]..).. 是允许的
..(…[…)….]…. 是禁止的

首先 是想到的当然是利用栈来解决问题,因为栈是先进后出的,并且是有顺序的,很好的解决了 括号的交叉问题。效率高,代码简洁。

package day1118;
import java.util.*;
public class Test1 {

    public static boolean isGoodBracket(String s) {
        Stack<Character> a = new Stack<Character>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(')
                a.push(')');
            if (c == '[')
                a.push(']');
            if (c == '{')
                a.push('}');
            if (c == ')' || c == ']' || c == '}') {
                if (a.size()==0)
                    return false; 
                if (a.pop() != c)
                    return false;
            }
        }
        if (a.size()!=0)
            return false; 
        return true;
    }
    public static void main(String[] args) {
        System.out.println(isGoodBracket("...(..[.)..].{.(..).}..."));

    }

}

但是如果 不考虑括号的 交叉问题,可以用其他的方法,例如直接将括号添加到Sting 或者是StringBuffer中,利用indexOf(“}”)–获取第一次出现“}”出现的位置,和lastIndexOf(“{“)–获取最后一次出现“{“的位置,将String进行逐个删除,如果最后String为空的话,那么匹配成功,否则为flase.

—–本人 初学者,有错误请告知,谢谢。——

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

uva 1626 添加最少的括号使得括号匹配

添加最少的括号使得括号匹配,并将括号匹配后的结果输出,可能有空串,所以输入的时候要用gets(); #include #include #include #include #includ...

括号匹配(小中大括号序列)

括号序列由( )[ ]{ }组成,不合法的括号序列由( { ) },[ } { ],等等。编程实现一个函数,检查一个括号序列是否是合法的括号序列。 解法: 思路和“后缀表达式的求解”相似。我们借助...

java堆栈类解决括号匹配问题

转载自:http://blog.csdn.net/u012706811/article/details/50791858 java.util包中提供了stack这个类,可以利用堆栈解决很多问...

Java 括号匹配问题

这两天正在学习抽象数据结构。想起了当年学习C++时,遇到的括号匹配的问题,反正一直都没有解决它,都怪自己太懒。今天用java简单的实现了,算是一种补充吧。 public class StackD...

java利用栈实现括号()[]匹配问题

描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No 样例输入...

java--一道简单的括号匹配问题

描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出...

数据结构中的栈,在解决很多问题都有用处,比如括号匹配,迷宫求解,表达式求值等等 java中有封装好的类,可以直接调用。

数据结构中的栈,在解决很多问题都有用处,比如括号匹配,迷宫求解,表达式求值等等 java中有封装好的类,可以直接调用:   Stack:   1-->public Sta...

括号匹配问题

  • 2011年12月24日 14:31
  • 69KB
  • 下载

括号匹配问题(动态规划)

给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。 如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 中的括号匹配问题
举报原因:
原因补充:

(最多只允许输入30个字)