悲,题目
括号平衡
题目描述
我们定义以下的括号是平衡的:
()
(())
()(()())
而这样的括号是不平衡的:
)(
())(
((())))
给出一个偶数长度的括号序列,问最少修改多少个括号可以使其平衡。
输入格式
输入一个字符串,长度至多 100,000 个字符。
输出格式
你的程序需要输出答案,最少需要添加多少括号才能保持平衡。
样例 #1
样例输入 #1
())(
样例输出 #1
2
我的代码
#include "bits/stdc++.h"
using namespace std;
int m(const string &s) {
stack<char> stk;
int a = 0;
for (char c : s) {
if (c == '(') {
stk.push(c);
} else if (c == ')') {
if (stk.empty()) {
a++;
} else {
stk.pop();
}
}
}
return a + stk.size();
}
int main() {
string s;
cin >> s;
cout << m(s) << endl;
return 0;
}