题目链接
解题思路
-
创建一个可变字符串
ans
-
用一个
flag
来标记是否将当前位的字符保存到ans
中 -
遍历字符串,当遇到
)
时flag++
,然后判断flag>=1
,如果是就将当前字符添加到ans
中 -
当遇到
(
时flag--
AC代码
class Solution {
public String removeOuterParentheses(String S) {
StringBuilder ans = new StringBuilder();
int flag = 0;
for (char c : S.toCharArray()) {
if (c == ')') flag--;
if (flag >= 1) ans.append(c);
if (c == '(') flag++;
}
return ans.toString();
}
}
本地测试代码
package com.company;
public class Solution_1021 {
public static String removeOuterParentheses(String S) {
StringBuilder ans = new StringBuilder();
int flag = 0;
for (char c : S.toCharArray()) {
if (c == ')') flag--;
if (flag >= 1) ans.append(c);
if (c == '(') flag++;
}
return ans.toString();
}
public static void main(String[] args) {
System.out.println(removeOuterParentheses("(()())(())"));
System.out.println(removeOuterParentheses("(()())(())(()(()))"));
}
}