为了维护他的隐私,Saurabh向Hacking Guru Hardik Anvekar寻求帮助。 Hardik教他ROT13--一种在UNIX系统中用于加密的方法。 Saurabh使用了这个想法并提出了他自己的方法。 Saurabh在他在校园的湖边亲自见到她的时候教他这个方法,他可以在没有Manav的帮助下与她交谈。
在Saurabh的加密技术中 - Saurabh将用另一个字母替换纯文本的每个字母,具体取决于Alphabet系列中键的第一个字符的位置。假设第一个字符是G(字母表中的第7个字母),Saurabh然后将明文的第一个字符替换为接下来的字符6.Saurabh将为前7个字符执行此操作,之后他将使用密钥的第二个字符并以那种方式替换其他角色。一旦密钥的所有字符都用完了 - Saurabh将再次开始使用第一个字符并加密整个明文。
但遗憾的是,Saurabh只能设备方法,但他无法编码。他相信你会编写一个代码来打印密文,而不是向任何人透露他的秘密方法。
输入格式
测试用例数T(< = 100) 纯文本和密钥用@字符分隔。
输出格式
仅限密文
示例输入
1我们最大的弱点在于放弃。最成功的方法就是再试一次。@ gaurav
示例输出
Uax mxkanymn qyuehymm fcym ch xzmzex lg. Kyv dfso xzmovdi rvt oj npxxzkj oy glqusm ni nls domn ihy dfiv kzdv.
答案 0 :(得分:0)
首先,你被赋予了糟糕的规范。它包括一些神奇的数字,但没有解释它们来自何处。无论如何我实现它是为了好玩并得到了一个有效的程序,这就是我想到的。
鉴于关键' gaurav':
ord('g') - ord('a') == 6
。所以你的算法看起来像:
O + 6 => U : #1 of 7 6s
u + 6 => a : #2 of 7 6s
r + 6 => x : #3 of 7 6s
" " : #4 of 7 6s
g + 6 => m : #5 of 7 6s
r + 6 => x : #6 of 7 6s
e + 6 => k : #7 of 7 6s
a + 0 => a : #1 of 1 0s
t +20 => n : #1 of 21 20s
e +20 => y : #2 of 21 20s
...
and so on
我不告诉你该怎么做(这是你的比赛:-)):
chr(ord('U') + 20) == 'i'
,但您不想翻译大写字母' U'小写' i' 提示: