天天看點

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;
		}
	}
}
           

繼續閱讀