前言
我不得不吐槽一下题目的翻译,就不能好好说人话吗?这不就是问要添加多少次能使得左右括号对称吗?
代码
class Solution {
public:
int minAddToMakeValid(string s) {
// 左括号的剩余个数
int left_num_item = 0;
int more_right_num = 0;
// 遍历
for (char item : s){
if (item=='('){
left_num_item +=1;
}
else{
// 每有一个右括号配对就减1
left_num_item -=1;
if (left_num_item<0){
// 如果左括号的个数小于0
// 把它给多出来的右括号,然后清零
more_right_num +=left_num_item;
left_num_item = 0;
}
}
}
return left_num_item-more_right_num;
}
};