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';
}

posted @ 2025-02-21 14:55  _Yxc  阅读(46)  评论(0)    收藏  举报