[编程题]表达式合法判断

来源:互联网 发布:车螺纹的程序怎么编程 编辑:程序博客网 时间:2024/05/16 12:57
链接:https://www.nowcoder.com/questionTerminal/227893ccf81d4e8589875922f0d9319e?pos=25&mutiTagIds=581&orderByHotValue=1

来源:牛客网

说明:原来的牛客网的测试用例是返回true,但是下面的测试用例应该返回false


写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。)

给定一个表达式A,请返回一个bool值,代表它是否合法。

测试样例:
"[a+b*(5-4)]*{x+b+b*(({1+2)}}"
返回:false
//"[a+b*(5-4)]*{x+b+b*(({1+2)}}"    public static boolean chkLegal(String A) {        Stack<Character> stack = new Stack<>();        for(int i=0;i<A.length();i++){        if(A.charAt(i)=='['||A.charAt(i)=='('||A.charAt(i)=='{'){        stack.push(A.charAt(i));        }        if(A.charAt(i)==']'||A.charAt(i)==')'||A.charAt(i)=='}'){        stack.pop();        }        }        if(stack.isEmpty()){        return true;        }    return false;    }


主要思想:左边括号的数量和右边括号的数量一样就好了
原创粉丝点击