B. Alternating Current

https://codeforces.com/problemset/problem/343/B

题意:给定两根线,告诉你每个节点的两根线的上下位置,问两根线能否无损解开

思路:如果连续的一段一个都在另一个上面或者下面,那么这一段就可以回到他本身的位置。根据这个思路,可以将问题转化为消消乐问题,只要有连续的相等的字符就可以消,最后看消没消完即可。

inline void solve() {
	string s;
	cin >> s;

	int n = (int)s.size();

	stack<char> stk;
	for (int i = 0; i < n; ++i) {
		if (!stk.empty() && s[i] == stk.top()) {
			stk.pop();
		}
		else {
			stk.push(s[i]);
		}
	}

	cout << (stk.empty() ? "Yes" : "No") << '\n';
}
posted @ 2025-09-15 09:40  _Yxc  阅读(6)  评论(0)    收藏  举报