题解 | #魔咒词典# map 建立双向映射

魔咒词典

https://www.nowcoder.com/practice/c6ca566fa3984fae916e6d7beae8ea7f

#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
int main(){
	map<string ,string>mp;
	int n;
	while(true){
		char line[100];
		fgets(line,100,stdin);//读取一行 
		string s1 = line;
        s1.pop_back();
		if(s1=="@END@")	 break;
		string word = s1.substr(0,s1.find(']')+1);//截取从0开始到 s1.find(']')+1这么长的子串 
		string info = s1.substr(s1.find(']')+2);//截取从s1.find(']')+2下标开始一直到结尾 
		mp[word] =  info;
		mp[info] =  word;//双向建立映射 
		
	}
	cin>>n;
	getchar();//注意要加这句处理换行 
	for(int i=0;i<n;i++){
		char line[100];
		fgets(line,100,stdin);//读取一行 
		string s = line;
        s.pop_back();
		if(mp.find(s)!=mp.end()){
			if(s[0]=='[') cout<<mp[s]<<endl;
			else cout<<mp[s].substr(1,mp[s].size()-2)<<endl;
		}else{
			cout<<"what?"<<endl;
		}
	}
	
	return 0;
	
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务