B. Regular Bracket Sequence
https://codeforces.com/contest/26/problem/B
给定一个包含括号的字符串,问最少移除多少字符可以让字符串合法
两个点,第一是如果当前)超标了,那这个必须删除。第二是遍历完所有字符后,如果(是多的,要算到总数里面。
inline void solve(){
string s;
cin >> s;
int cnt = 0;
int ans = 0;
for (const auto& x : s) {
cnt += (x == '(' ? 1 : -1);
if (cnt < 0) {
cnt = 0;
ans ++;
}
}
ans += cnt;
cout << s.size() - ans << '\n';
}

浙公网安备 33010602011771号