202112 青少年等级考试C/C++真题六级 建议答题时长:60min
1. 编程题

电话号码

给你一些电话号码,请判断它们是否是一致的,即是否有某个电话是另一个电话的前缀。比如:

 

Emergency 911

Alice 97 625 999

Bob 91 12 54 26

 

在这个例子中,我们不可能拨通Bob的电话,因为Emergency的电话是它的前缀,当拨打Bob的电话时会先接通Emergency,所以这些电话号码不是一致的。

时间限制:1000

内存限制:65536

输入

第一行是一个整数t,1 ≤ t ≤ 40,表示测试数据的数目。 每个测试样例的第一行是一个整数n,1 ≤ n ≤ 10000,其后n行每行是一个不超过10位的电话号码。

输出

对于每个测试数据,如果是一致的输出“YES”,如果不是输出“NO”。

 

样例输入

2

3

911

97625999

91125426

5

113

12340

123440

12345

98346

样例输出

NO

YES

查看答案
2. 编程题

字符串插入

有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的'\0'。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。

时间限制:1000

内存限制:65536

输入

输入包括若干行,每一行为一组测试数据,格式为 str substr

输出

对于每一组测试数据,输出插入之后的字符串。

 

样例输入

abcab eee

12343 555

样例输出

abceeeab

12345553

查看答案
3. 编程题

栈基本操作

依次读入序列元素1,2,...,n进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行。给定一个输入序列,判断栈空时弹出的元素构成的序列是否可能等于给定的序列,如果是则输出栈的操作过程,否则输出“NO”。

时间限制:1000

内存限制:65535

输入

输入分两行 第一行为n的值(即序列元素个数) 第二行为给定的输入序列(序列元素均为整型)

输出

如果输入序列能够由题目规定的操作得到,则输出对栈的操作过程 否则直接输出“NO”

 

样例输入

7

4 5 3 6 2 7 1

样例输出

PUSH 1

PUSH 2

PUSH 3

PUSH 4

POP 4

PUSH 5

POP 5

POP 3

PUSH 6

POP 6

POP 2

PUSH 7

POP 7

POP 1

 

提示

给定序列中有可能有不在1...n之间的数字

查看答案
4. 编程题

滑动窗口

给定一个长度为n(n<=10^6)的数组。有一个大小为k的滑动窗口从数组的最左端移动到最右端。你可以看到窗口中的k个数字。窗口每次向右滑动一个数字的距离。

下面是一个例子:

数组是 [1 3 -1 -3 5 3 6 7], k = 3。

 

窗口位置 最小值 最大值

[1  3  -1] -3  5  3  6  7 -1 3

 1 [3  -1  -3] 5  3  6  7 -3 3

 1  3 [-1  -3  5] 3  6  7 -3 5

 1  3  -1 [-3  5  3] 6  7 -3 5

 1  3  -1  -3 [5  3  6] 7 3 6

 1  3  -1  -3  5 [3  6  7] 3 7

 

你的任务是得到滑动窗口在每个位置时的最大值和最小值。

 

时间限制:20000

内存限制:65536

输入

输入包括两行。 第一行包括n和k,分别表示数组的长度和窗口的大小。 第二行包括n个数字。

输出

输出包括两行。 第一行包括窗口从左至右移动的每个位置的最小值。 第二行包括窗口从左至右移动的每个位置的最大值。

 

样例输入

8 3

1 3 -1 -3 5 3 6 7

样例输出

-1 -3 -3 -3 3 3

3 3 5 5 6 7

查看答案
试题目录
编程题
1 2 3 4
赣ICP备20007335号-2