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 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: