1021. Remove Outermost Parentheses #
题目 #
- 有效括号字符串为空
""
、"(" + A + ")"
或A + B
,其中A
和B
都是有效的括号字符串,+
代表字符串的连接。- 例如,
""
,"()"
,"(())()"
和"(()(()))"
都是有效的括号字符串。
- 例如,
- 如果有效字符串
s
非空,且不存在将其拆分为s = A + B
的方法,我们称其为原语(primitive),其中A
和B
都是非空有效括号字符串。 - 给出一个非空有效字符串
s
,考虑将其进行原语化分解,使得:s = P_1 + P_2 + ... + P_k
,其中P_i
是有效括号字符串原语。 - 对
s
进行原语化分解,删除分解中每个原语字符串的最外层括号,返回s
。
思路 #
模拟 #
代码 #
模拟 #
class Solution {
public String removeOuterParentheses(String s) {
String ans = "";
int left = 0, right = 0;
for (int i = 0, j = 0; j < s.length(); j++) {
Character ch = s.charAt(j);
if (ch == '(') left++;
else if (--left == 0) {
ans += s.substring(i+1, j);
i = j + 1;
}
}
return ans;
}
}