专栏文章

题解:P1597 语句解析

P1597题解参与者 4已保存评论 4

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
3 条
当前快照
1 份
快照标识符
@mioz89bd
此快照首次捕获于
2025/12/03 03:34
3 个月前
此快照最后确认于
2025/12/03 03:34
3 个月前
查看原文

解题思路

考虑变量和数字都是一位的,可以将字符串分成五个字符一段。每一段中只有第一个字符和第四个字符是有效信息,故只需要处理这两个字符即可。
map<char,char> mp 维护变量存储的信息。如果每段的第四个字符是数字直接建立变量与数字的映射。如果是变量则建立变量与第四个字符对应映射的映射。

代码实现

CPP
#include<bits/stdc++.h>
using namespace std;
int main() {
	string s;
	map<char, char> mp;
	cin >> s;
	mp['a'] = mp['b'] = mp['c'] = '0';
	for (int i = 0; i < s.size(); i += 5) {
		if (s[i + 3] >= '0' && s[i + 3] <= '9')
			mp[s[i]] = s[i + 3];
		else
			mp[s[i]] = mp[s[i + 3]];
	}
	cout << mp['a'] << " " << mp['b'] << " " << mp['c'];
	return 0;
}

评论

4 条评论,欢迎与作者交流。

正在加载评论...