本题使用的是循环异或算法。
由于每个十六进制字符都对应4位二进制,所以可以直接按十六进制字符进行处理。
对于data中的第i个字符:
给定一个十六进制密钥 key 和一个十六进制数据 data,要求实现循环异或操作:
输入
1
A 1234
输出
B89E
说明
key = "A" → 二进制 1010 data = "1234" → 二进制 0001 0010 0011 0100
循环异或过程: 0001 0010 0011 0100 (data) 1010 1010 1010 1010 (key循环使用)
1011 1000 1001 1110 (异或结果)
B 8 9 E 实际输出应该是 "B89E"
输入
1
FF A5
输出
5A
说明
key = "FF" → 二进制 1111 1111 data = "A5" → 二进制 1010 0101
1010 0101 1111 1111
0101 1010 → "5A"
输入
2
AB 12345
FF A5
输出
B99FF
5A
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.