天天看点

hnu 暑期实训之魔咒词典

文章目录

    • 题目
    • 思路
    • AC代码

题目

hnu 暑期实训之魔咒词典
hnu 暑期实训之魔咒词典

思路

这题比较容易,108在oj也能过就暴力循环了,用哈希+二分会不会简单点呢。。

AC代码

#include <bits/stdc++.h>
using namespace std;
unordered_map<string, string> m;
string s, name, func, found;
int a;

int main() {
	while (getline(cin, s), s != "@END@") {//注意两者之间要加一个逗号用以区分
		a = s.find(']');
		name = s.substr(0, a + 1);
		func = s.substr(a + 2);
		m[name] = func;
	}
	unordered_map<string, string>::iterator it;
	int num;
	scanf("%d", &num);
	for (int i = 0; i < num; ++i) {
		bool flag = false;
		getline(cin, found);
		for (it = m.begin(); it != m.end(); ++it) {
			if (found == it->first) {
				flag = true;
				cout << it->second << endl;
			} else if (found == it->second) {
				flag = true;
				a = it->first.size();
				cout << it->first.substr(1, a - 2) << endl;
			}
		}
		if (!flag) {
			cout << "what?" << endl;
		}
	}
}
           

继续阅读