警示后人(虽然后人大概率踩不到同款)
查看原帖
警示后人(虽然后人大概率踩不到同款)
1288333
XURUIFAN楼主2025/7/23 14:35

这是我的抽象读入。

	while (1) {
		getline(cin, r);
		if (r == "EOF") break;
		deque<char> l;
		for (int i = 0; i < r.size(); i++) {
			if (r[i] == '<') {
				if (!l.empty()) l.pop_back();
			} else l.push_back(r[i]);
		}
		r = "";
		while (!l.empty()) {
			r = l.front() + r;
			l.pop_front();
		}
		a[++ca] = r;
	}

喜提10分。
改成这样:

	while (1) {
		getline(cin, r);
		if (r == "EOF") break;
		l = "";
		for (int i = 0; i < r.size(); i++) {
			if (r[i] == '<') {
				if (!l.empty()) l.pop_back();
			} else l.push_back(r[i]);
		}
		a[++ca] = l;
	}

AC。
原因:入栈再出栈是倒序,用双端队列结果写成r = l.front() + r;成功骗到自己……其实可以直接r+=l.front()的。

2025/7/23 14:35
加载中...