2017西电机试算法题

时间:2025年3月17日19:55:38 start->

Problem 1

题目描述:在一个整体序列a1,a2,……,an中,如果存在某个数,大于它的整数数量等于小于它的整体数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。

​ 给定一个整数数列,请找出这个整数序列的中间数的值。

输入格式:输入的第一行包含了一个整数n,表示整数序列中数的个数。

​ 第二行包含n个正整数,依次表示a1,a2,……,an。

输出格式:如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。

样例输入:如下

6

2 6 5 6 3 5

样例输出:如下

5

样例说明:比5小的数由2个,比5大的数也有2个。

样例输入:如下

4

3 4 6 7

样例输出:如下

-1

样例说明:在序列中的4个数都不满足中间数的定义。

代码:如下

1
2
3
4
#include<cstdio>

using namespace std;

Problem 2

题目描述:给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需要支持大小写敏感选项,当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。

输入格式:输入的第一行包含一个字符串S,由大小写英文字母组成。

​ 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。

​ 第三行包含一个整数n,表示给出的文字的行数。

​ 接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字母。

输出格式:输出多行,每行包含一个字符串,案出现的顺序依次给出那些包含了字符串S的行。

样例输入:

Hello

1

5

HelloWorld

HiHiHelloHiHi

GrepIsAGreatTool

HELLO

HELLOisNOTHello

样例输出:

HelloWorld

HiHiHelloHiHi

HELLOIsNOTHello

样例说明:

​ 在上面的样例中【杨立忠】,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。

代码:如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
```



# Problem 3

题目描述:一堆人来到公司上班,每天来的时候都要打卡,走的时候再打卡,走的时候再打卡,一天可能打卡多次,但都是偶数次,要求计算每个人在公司呆了多久。

样例输入:

小明 8:00 12:00

小红 8:00 11:00

小明 14:00 18:00

样例输出:

小明 480

小红 180

代码:如下


# Problem 4

题目描述:请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的作为分配。

​	假设一节车厢有20排、每一排有5个座位。为方便起见,我们用1到100来给所有