今天在牛课网上做了一道去年去哪网的线上笔试题,就是表达式合法判断的问题,很基础一个题目,考察栈的应用。结果做了一个上午测试用例总是不能完全通过,细看题目原来人家是这样要求的 并没有要求左右括号严格匹配,瞬间无语,做题之前还是要认真把题目读懂。 ...
今天在牛课网上做了一道去年去哪网的线上笔试题,就是表达式合法判断的问题,很基础一个题目,考察栈的应用。结果做了一个上午测试用例总是不能完全通过,细看题目原来人家是这样要求的
并没有要求左右括号严格匹配,瞬间无语,做题之前还是要认真把题目读懂。
下面粘出答案
1 //表达式合法的判断 -- 栈 2 public static boolean chkLegal(String A) { 3 Stack<Character> left = new Stack<Character>(); 4 for(int i =0; i<A.length(); i++){ 5 char c = A.charAt(i); 6 if(c=='{' || c=='[' || c=='('){ 7 left.push(c); 8 } 9 //没有要求左右括号严格匹配 10 if(c=='}' || c==']' || c==')'){11 if(left.isEmpty()){ //右括号多出不合法12 return false;13 }else{14 left.pop();15 }16 }17 }18 if(!left.isEmpty()){ //左括号多出不合法19 return false;20 }21 return true;22 }
原标题:粗看表达式合法判断
关键词:表达式
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。