利用栈,判断括号匹配

p65页第4题

思路书上有

参考代码:

import java.util.Stack;

public class c1
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        Stack<String> mys=new Stack<String>();
        String a,t;
        a="3*(2+(1/(6+8))-(4+1))";
        for (int i = 0; i < a.length(); i++)
        {
            t=a.substring(i,i+1);
            if(t.equals("("))
            {
                mys.push("x");
            }
            if(t.equals(")"))
            {
                if(mys.empty())
                {
                    System.out.println("sth wrong![( requied]");
                    return;
                }
                mys.pop();
            }
        }
        if(!mys.empty())
        {
            System.out.println("sth wrong![) requied]");
            return;
        }
        System.out.println("ok");
    }
}

自行运行调试。


思考:

{[(-b)+sqrt(b*b-4*a*c)]/(2*a)}*100

判断括号是否匹配。
如果不匹配,提示“第XXX个字符x找不到匹配的符号”
注意:三种括号不可以交叉。

x为“{[()]}”之一

原文地址:https://www.cnblogs.com/wanjinliu/p/13895909.html