活宝泽润润🦄 level
获赞
58
粉丝
0
关注
1
看过 TA
0
东北大学
2018
Java
IP属地:未知
暂未填写个人简介
私信
关注
2018-03-01 11:04
已编辑
东北大学 Java
在表达式值不变的情况下,将输入的表达式中的括号全去掉,并输出去掉括号后的表达式。   比如输入 (a-(b+c)),输出 a-b-c;   再比如输入 ((a+b)-(c-d))-(e+f) ,输出 a+b-c+d-e-f。
Horace7:static String removeParentheses(String input){ int length = input.length(); char[] array = input.toCharArray(); int count = 0; Stack<Integer> parenthesesStack = new Stack<>(); StringBuilder sb = new StringBuilder(); for (int i=0; i< length; i++){ switch (array[i]){ case '-': sb.append(((count&1) == 1)?'+':'-'); if(i < length - 1 && array[i+1] == '('){ count ++; parenthesesStack.push(i+1); i++; } break; case ')': int lastLeftIndex = parenthesesStack.pop(); if (lastLeftIndex > 0 && array[lastLeftIndex - 1] == '-') { count--; } break; case '+': sb.append(((count&1) == 1)?'-':'+'); break; case '(': parenthesesStack.push(i); break; default: sb.append(array[i]); } } return sb.toString(); }
0 点赞 评论 收藏
分享
2017-09-13 18:21
东北大学 Java
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务