C语言小丑谜题:破解字符乱码

布鲁斯·韦恩收到了小丑寄来的谜题。

谜题是由数字和字母组成的乱码。经过管家阿福的仔细分析,乱码规律如下:

  • 乱码开头一定是数字,数字代表了索引
  • 数字(1-9)代表了下一个字符开始计算的索引
  • 根据索引读取字符内容
  • 读取到0时字符结束

比如以下的乱码:'1B1a1t1m22a333n0'

破解之后为:'Batman'

输入

输入第一行为整数n,代表一共给出n行乱码

下面n行的每一行都是单独的乱码

输出

输出n行乱码的解,每个解单独一行

输入样例 1

2
1B1a1t1m22a333n0
1J22o1k1e1r0

输出样例 1

Batman
Joker

提示

n = int(input())
for _ in range(n):
    code = input().strip()
    idx = 0
    result = ""
    while idx < len(code):
        if code[idx].isdigit():
            idx += 1
            next_idx = int(code[idx]) - 1
            result += code[next_idx]
        else:
            break
        idx += 1
    print(result)

解析

根据题目描述,我们可以使用循环遍历每一行的乱码,然后通过索引规则依次破解每个字符。在循环中,我们维护一个指针idx来指示当前要读取的字符的索引。如果当前字符是数字,我们将其加1得到下一个字符的索引next_idx,然后将乱码中的字符加入到结果result中。如果当前字符不是数字,说明乱码已经破解完毕,跳出循环。最后输出结果result即可。

C语言小丑谜题:破解字符乱码

原文地址: https://www.cveoy.top/t/topic/Uwm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录