2038 : ROT13

时间限制:1 Sec 内存限制:128 MiB
提交:219 答案正确:69

提交 状态 讨论区

题目描述

Eki 最近迷上了密码学,却发现自己的智商什么都看不懂,于是就希望他的好基友 Tatsu 找个简单好懂的给 Eki 讲一讲以便提起他研究密码学的兴趣。 Tatsu 再三考虑到了 Eki 有限的智商,于是找了一个超级简单的加密算法将给了他,算法的名字叫 ROT13

 

ROT13 是一个非常简单粗暴的替换式密码算法,全称是 Rotate by 13 places ,于是不难猜出,这个算法的加密策略仅仅需要检查字符字母顺序并替换它在13位之后的对应字母,13位后如过没有字母则重新绕回26英文字母的开头继续就行了,非字母则原样不变。比如A应当换成NB换成O、依此类推到M换成Z,然后序列反转:N换成AO换成B、最后Z换成M。(如图)

看上去这么简单, Eki 表示不满,并说自己可以快速的加密和解谜这种方式编码的密码,于是 Tatsu 发给了 Eki 一大堆字符串,并要求他根据要求给出加密或者解密后的结果,这时候 Eki 才发现,即便这么简单,自己也不会写,于是他找到了你帮他解决问题。

 

你能帮 Eki 完成 Tatsu 布置的作业吗?

输入

 根据给定的字符串和要求完成加密或者解谜操作,输入格式见下方描述。

每个测试样例包含多组测试数据,处理到文件尾部。其中每行为一组测试数据。

对于每一组测试数据(每一行),都由指令和待处理的字符串组成。指令有两种,ENCODE (即加密)和 DECODE (即解密)。后面紧跟待处理的字符串,待处理字符串和指令间由空格隔开。

输入数据保证每一行都不超过300个字符,每组测试数据包含的测试实例不超过300组。

输出

根据要求输出每组样例的处理结果即可。

对于每一组样例,仅输出原字符串根据要求处理后的结果,每组样例的处理结果占一行。

样例输入

复制
ENCODE Hello
DECODE vaibyhgvba

样例输出

复制
Uryyb
involution

提示


			

来源

师院2016年新生程序设计大赛