一、题目描述
二、示例
三、难度
中等
四、代码
Java版
class Solution {
public int minInsertions(String s) {
int res = 0, leftBracket = 0;
for (int i = 0; i < s.length(); ++i) {
if (s.charAt(i) == '(') {
++ leftBracket;
}
else {
// 没有左括号了,需要加一个左括号
if (leftBracket == 0) ++ res;
else -- leftBracket;
// 只有一个右括号,需要再加一个右括号
if (i == s.length() - 1 || s.charAt(i + 1) != ')') ++res;
else ++i; //需移动两下,跳过两个右括号
}
}
return res + leftBracket * 2;
}
}