小班出题之字符串基础检测
- 题目提供者山东省济南市历城第二中学(没加洛谷历二团队的小班同学请点击链接申请加入,我会有空同意的)
- 标签字符串模拟
- 难度尚无评定
- 通过/提交0/1
提交该题 记录
题目背景
某一天,信息界机智的奶牛又被某个挨千刀的农夫派到了敌国的战场。 这是一次人工智能和碳基生命体的较量 然而这一次他的敌人是阿尔法狗……题目描述
这可怎么办呢,一个是已经发展为世界顶级的人工智能,一个是伟大的OI界最聪明的生物……
奶牛很是郁闷啊,如果直接把从敌国获取的情报传回来,那就一定会被强大的阿尔法狗截获,所以这次奶牛就想了个聪明的法子——利用阿尔法狗不能理解加密字典的bug先发送一个字典字符串回来(所谓字典,就是两个可以一一对应的字符串,第二个字符串相应位置的字符可以代表第一个字符串相应位置的字符),然后再把加密后的密文发送回来,这样阿尔法狗就不会知道信息是什么了
不过奶牛还面临一个问题,那就是它只能通过跟外界联系的wifi传送数据。但是由于wifi信号非常弱(可能是受到某奥赛室的某些秀恩爱行为所致(别问我为什么)),奶牛又包不起昂贵的流量,那就会造成字典字符串传输用的数据包损坏问题。正常的数据包是由两串标准长度的字符组成,而损坏的数据包则是由或长或短的两段不定长度的字符串组成。而负责接收信息的贾维斯则会跟你一起破译奶牛发回的数据。
贾维斯的工作停止于以下情况:
1 字典数据包没有损坏并且加密字符串读取成功;
2 读取完毕但有字母没有在字典数据包中出现。
3 字典数据包扫描中出现矛盾或错误,即违反上述的规则。
现在,奶牛发来信息,贾维斯要求你帮他写一个可以利用发回的字典数据包翻译一条刚刚截获的敌国信息的程序。
输入输出格式
输入格式:
一二行为奶牛冒着生命危险发回的字典数据包。
第三行为你要和贾维斯一起翻译的加密信息。
输出格式:
一行,如果出现2 3 所示的停止情况则输出“Failed”,否则翻译奶牛传送的信息。
输入输出样例
输入样例#1:
QWERTYUIOPLKJHGFDSAZXCVBN ABCDEFGHIJKLMNOPQRSTUVWXY HAHALIDAXIN
输出样例#1:
Failed
输入样例#2:
QWERTYUIOPLKJHGFDSAZXCVBNM ABCDEFGHIJKLMNOPQRSTUVWXYZ IQIQKORQBOHAIOIQGSTH
输出样例#2:
HAHALIDAXINSHIHAOREN
说明
字符串,自己想(以后我出的题里绝对都会有我发的牢骚!!!!!)
题很简单,字符串处理基础的东西,来测试一下小班同学们的基础掌握情况。改编自hahalidaxin学长出的题。详见我另一篇博客(那个是用map做的,很长很长时间之前的了,我不建议小班的同学用这种方法)。下面发一个正常的字符串的做法。
首先是判断“字典数据包”有没有损坏。如果字典数据包不足26位,这肯定是错的。如果在字典里同一个字符出现了两次且两次出现所对应的字符不一样,那也是错的。扫描完之后,那只需要读入加密数据然后一位一位的输出所对应的正确
字符就好了。
注:可能我题里的描述不清楚,字典是两行字符串,第二行相对于第一行位置的字符就是第二行对应字符的加密前的字典。
例:ZHNG
GNHZ
这里的G就对应Z,如果需要翻译的字符串里出现了G,那么正确的对应输出就是Z
代码的话我就不再多说了,都是基础水题,按照我上面描述的做那就一定是对的。
提示:可以用map,不过不建议,还是先用字符串自己模拟把基础练扎实了再说。stl我过一段时间会详细教的
代码我再贴一遍吧,不过是按本题描述加密的哦(在本题的基础上加入了'<'、'>'空格等字符的匹配)
/* *字典 */ oyuNe[txa;g<Y)#*DKI"/>k]miw,sW=qj\fl{!FJbGPd(Z%MOp+nA&rh:T}|-c VXzvUCLSEQ'HRB v+PNAGBjb-VW*q|[nyRczr;#w"fkxMeKlu(IOTmg=&D}CFQ<SL] H!'ta,UYJXp%sZ):{o>hd/iE\
]HD"j\Q=MHLXh>=:FS ]HD"j\Q=MF: S ]HD"j\Q=MXh>HDJS \XHDJnD:F=X :"=nXhQk F: M"E:>T"E:>SnaH:DF:k F: M"E:>T"E:>SnxH:LQ\Hkn Xh>HDJn:TaT"k HDhn"HXE\b k HDhnF:HDfv C wL>fHDhnHb kHnMn: j=DJhEfvknHyyv C HwfaH:DF: "L\Dhf:*H+v##xH:LQ\H "L\Dhfa*H+vv C HwfaH:DF:*:*H++&ba*H+##xH:LQ\H*a*H++&b:*H+v C "L\hMMiZ:Hj=Qik >=h\>Dn k d d =jX= C "HXE\yyk aH:DF:*:*H++ba*H+k xH:LQ\H*a*H++b:*H+k d d mEHj=fJ=hjHD=f"HDT"vvC wL>fHDhnHb kHMb" j=DJhEfvkHyyv C "*H+baH:DF:*"*H++k d dn "L\hMM"k >=h\>Dn k dn