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  阅读(22)  评论(0)    收藏  举报