万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!

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为“{[()]}”之一

 

posted on 2020-11-02 15:41  万金流  阅读(200)  评论(0编辑  收藏  举报