CCF GESP 2026年6月认证 C++ 3级
题目描述
小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密。
他有一本密码本,密码本告诉你:每个数字应该变成哪个数字。
数字一共有 10 个:0、1、2、3、4、5、6、7、8、9。
密码本会依次告诉你:
0 要变成什么
1 要变成什么
2 要变成什么
……
9 要变成什么
请你按照密码本,把原来的每个数字都换成新的数字,然后输出。
输入格式
输入共有 3 行。
第一行:一个整数,表示有多少个数字需要加密;
第二行:这些需要加密的数字;
第三行:密码本,一共 10 个数字。
这 10 个数字的意思是:
第 1 个数字:表示 0 加密后变成什么;
第 2 个数字:表示 1 加密后变成什么;
第 3 个数字:表示 2 加密后变成什么;
……
第 10 个数字:表示 9 加密后变成什么。
输出格式
输出加密后的数字。
也就是:把输入第二行里的每个数字,都按照输入第三行的密码本换掉后输出。
样例说明
样例 1
7
0 2 0 3 4 1 9
9 0 1 2 3 4 5 6 7 8
9 1 9 2 3 0 8
第二行要加密的数字是:
0 2 0 3 4 1 9
第三行密码本是:
9 0 1 2 3 4 5 6 7 8
它的意思是:
- 0 变成 9
- 1 变成 0
- 2 变成 1
- 3 变成 2
- 4 变成 3
- 5 变成 4
- 6 变成 5
- 7 变成 6
- 8 变成 7
- 9 变成 8
所以:
- 0 变成 9
- 2 变成 1
- 0 变成 9
- 3 变成 2
- 4 变成 3
- 1 变成 0
- 9 变成 8
最后得到:
9 1 9 2 3 0 8
数据范围
需要加密的数字个数不超过 20000 个,且均为 0 到 9;密码本中的数字不重复,且均为 0 到 9。
题目描述
小杨同学有一串字符,里面可能有:
- 大写字母,比如 A、B、C
- 小写字母,比如 a、b、c
- 数字,比如 0、1、2
现在小杨同学想把这串字符变一变,规则如下:
- 如果是大写字母,就变成对应的小写字母;
- 如果是小写字母,就变成对应的大写字母;
- 如果是数字,就变成
*。
请你按照这个规则,帮小杨把整串字符转换好。
输入格式
输入一共有 2 行。
第一行:一个整数,表示这串字符一共有多少个字符。
第二行:一串连续的字符,中间没有空格。
输出格式
输出转换后的字符。
注意:输出时字符之间不要加空格。
样例说明
样例 1
5
aBc98
AbC**
原来的字符是:aBc98
从左到右一个一个看:
- a 是小写字母,所以变成 A;
- B 是大写字母,所以变成 b;
- c 是小写字母,所以变成 C;
- 9 是数字,所以变成
*; - 8 是数字,所以变成
*。
所以最后输出:AbC**
数据范围
字符个数不会超过 1000 个。
每个字符只会是大写字母、小写字母或数字。