湖南大学21夏训练三3.魔咒词典
【问题描述】
哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。
给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?”
【输入形式】
首先列出词典中不超过100000条不同的魔咒词条,每条格式为:
[魔咒] 对应功能
其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。词典最后一行以“@END@”结束,这一行不属于词典中的词条。
词典之后的一行包含非负整数N(0=<N<=1000),随后是N个测试用例。每个测试用例占一行,或者给出“[魔咒]”,或者给出“对应功能”。
【输出形式】
每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。如果魔咒不在词典中,就输出“what?”
【样例输入】
[expelliarmus] the disarming charm
[rictusempra] send a jet of silver light to hit the enemy
[tarantallegra] control the movement of one’s legs
[serpensortia] shoot a snake out of the end of one’s wand
[lumos] light the wand
[obliviate] the memory charm
[expecto patronum] send a Patronus to the dementors
[accio] the summoning charm
@END@
4
[lumos]
the summoning charm
[arha]
take me to the sky
【样例输出】
light the wand
accio
what?
what?
【解题思路】
先整行读取,再用substr做相应的截取(以“】”作为分界判断标准),最后判断输出
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){vector<string>magic(100001);vector<string>fun(100001);vector<string>txt(100001);int count=0;while(1){getline(cin,txt[count]);if(txt[count].find("@END@")!=string::npos)break;count++;}for(int i=0;i<count;i++){magic[i]=txt[i].substr(0,txt[i].find("]")+1);fun[i]=txt[i].substr(txt[i].find("]")+2);}int n;cin>>n;string a;getline(cin,a);//清空缓冲区string temp;for(int i=0;i<n;i++) {getline(cin,temp);int x=0; for(int i=0;i<count;i++){if(temp==magic[i]){cout<<fun[i]<<endl;x++;break;}else if(temp==fun[i]){for(unsigned int j=1;j<magic[i].length()-1;j++)cout<<magic[i][j];cout<<endl;x++;break;}}if(x==0)cout<<"what?"<<endl; }return 0;
}
湖南大学21夏训练三3.魔咒词典相关推荐
- 湖南大学21夏训练三4.打牌
[问题描述] 牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌. 规则:出牌牌型有5种 [1]一张 如4 则5-9可压过 [2]两张 如44 则55,66,77 ...
- 湖南大学21夏训练三15.公交系统
[问题描述] 城市公交系统有一个记录仪,用于记录每个站点的乘客人数的变化情况,例如:x表示到站前公交车上的乘客人数,y表示离站时公交车上的乘客人数,则该记录仪记录的该站的数字为y-x.对于一辆公交车和 ...
- 湖南大学21夏训练三18.写出来吧
[问题描述] 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. [输入形式] 每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10的100次方. [输出形式] 在一 ...
- 湖南大学21夏训练三10. Maya历法
[问题描述] 在学术休假期间,M.A. Ya教授在古老的Maya历法上有一个惊人的发现.从一个古老的令人棘手的信息中,教授发现Maya文明以365天为一年,称为Haab,包含19个月.前18个月每月有 ...
- 湖南大学21夏训练三13.数字统计
[问题描述] 给定一个k位整数N = dk-110k-1 + - + d1101 + d0 (0<=di<=9, i=0,-,k-1, dk-1>0),请编写程序统计每种不同的个位数 ...
- 湖南大学21夏训练三14.A除以B
[问题描述] 本题要求计算A/B,其中A是不超过1000位的整数(A>=0),B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. [输入形式] 输入在1行中依次给出A ...
- 湖南大学21夏训练四7.斯诺克台球
[问题描述] 斯诺克台球是一项古老而又时尚的运动,使用长方形球桌,台面四角以及两长边中心位置各有一个球袋,使用的球分为1个白球,15个红球和6个彩球共22个球. 其中母球(白球)1只,目标球21只.目 ...
- 湖南大学21夏训练四2.最简单的计算机
[问题描述] 一个名叫是 PigHeadThree 的研究组织设计了一台实验用的计算机,命名为 PpMm.PpMm只能执行简单的六种命令 A,B,C,D,E,F:只有二个内存 M1,M2:三个寄存器 ...
- 湖南大学21夏训练四12.疫情期间
[问题描述] 正值新冠疫情期间,阿迪没法返回学校学习,他希望通过参加一些比赛来提高一下编程技能,同时做做运动.他收集了接下来的 n 天里每一天的信息,包括健身房是否开放,或者互联网上是否有程序设计竞赛 ...
最新文章
- 懒 人 世 界 的 生 存 法 则
- 2017年大数据的十大发展趋势
- Spring学习1之ioc
- SpringBoot+Echarts实现一次ajax请求返回并显示多个饼状图
- 【Windows工具】BBDown.exe B站视频下载工具详细使用说明(https://github.com/nilaoda/BBDown)
- OpenGL Multi Texture多重纹理的实例
- Burrow 服务的安装部署
- 变形金刚2_变形金刚(
- git连接通过ssh连接github
- 六个国外免费的DNS服务-做英文与外贸必备
- 从Java中的串口读取文件
- delphi xe 连接mysql_delphixe7支持MYSQL连接的方式
- Python模拟黑客帝国影片中的终端动画脚本
- 【基于遥感解译与GIS技术】土地利用图、植被类型图、植被覆盖度图、土壤侵蚀制图
- python 多行注释语法_Python 注释-Python注释多行代码-Python注释符-python多行注释-嗨客网...
- 国际象棋 小麦 用java怎么算_蓝桥杯-放麦子-java
- 删库跑路最佳实践总结
- 关于zuul和nginx文件上传大小限制问题
- 外部接口调用失败重试
- 独自一人开发一整套 ERP 系统是什么水平?