锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

某厂机试算法刷题一览

时间:2022-09-20 21:00:00 sub连接器78pa21传感器微型对射传感器

牛客网-华为笔试机考在线练习

力扣刷题

All posts in 德科机考一星题

A机试叮当猫-华为机试真题

GavenHwang博客-华为机试

coder 明轩博客-华为机试23题总结


目录

1.【寻找身高相近的小朋友】

2.【火星文计算】

3.【指定缺陷度最长的元音字串】

4.【消乐游戏】

5.判断字符串子序列

6.整数对最小和

7.【文章片段按区间反转】

8.【最长方连续方波信号】

9.数组拼接

10.【停车场车辆统计】

11.【乱序整数序列两数之和绝对值最小】

12.最大括号深度

13.打印任务排序

14.【单词接龙】

15.数组去重和排序

16.寻找最小数

17.【按身高体重排队】

18.【勾股数组】

19.【乱序整数序列两数之和绝对值最小】

20.【解压报】

21.数据分类

22.【统计射击比赛成绩】

23.服务器广播

24.【查找众数和中位数】

26.【指定缺陷度最长的元音字串】

27.【we a are team[机房]】

28.【字符串中包含的最长的非严格递增连续数字序列长度】

29.【最长的连续子序列】

30.【考勤信息】

31.【寻找相同子串】

32.【检查是否存在满足条件的数字组合】

33.【字符串筛选排序】

34.【仿LISP字符串运算】

35.【5键键盘的输出】

36.【内存资源分配】

37.【猴子爬山】

38.【计算疫情扩散时间】

39.【计算GPU算力】

40.【字符串变换最小字符串】

41.【篮球比赛】

42.【连续字母长度】

44.【判断一组不等式是否满足约束并输出最大差】

45.【输出字符串中包含所有整数的最小和】

46.【最大数】

47.【找朋友】

48.【字符统计及重排】

49.【乱序整数序列两数之和绝对值最小】

50.【德州扑克】

51.【靠谱的车】

52.【VLAN资源池】

53.【任务最优调度】

54.【找终点】

 55.【拼接URL】

56.【矩阵最大值】

57.【最小传输时延】

58.【高效的任务规划】

59.【组成最大数】

60.【矩形相交的面积】 

61.【实现一个简易内存池】 

62.【工厂流水线调度】

63.【快递运输】

64.【目录删除】

 65.【任务调度问题】

66.【英文输入法单词联想】

67.【求解连续数列】

68.【区间交集】

69.【玩牌高手】

70.【根据日志时间先后顺序对日志进行排序】

71.【分月饼】

71.【滑动窗口最大值】

72.【wave数组找字母游戏】

73.【最小数字】

74.【解密犯罪时间】

75.【任务最优调度】

76.【最大值】

77.【按身高和体重排队】

78.【寻找身高相近的小朋友】

79.【二叉树中序遍历输出】 

80.【第k个排列】

81.【求数组中最大n个数和最小n个数的和】

82.【喊7的次数重排】

83.【二叉树用数组来存储】

84.【最大子矩阵和】

85.【磁盘容量排序】

86.【一种字符串压缩表示的解压】

87.【最大花费金额】

88.【最远足迹】

89.【计算面积】

 90.【最大矩阵和】

91.【最长广播响应】

92.【二叉树的广度优先遍历】

93.【求字符串中所有整数的最小和】

94.【求最多可以派出多少支团队】

95.【数字反转打印】

 96【火锅】

97.【找车位】

98.【敏感字段加密】

99.【字符串统计】 

 100.【九宫格按键】

 101.【报数游戏】

102.【叠积木】

103.【工号不够用了怎么办】

 104.【构成的正方形数量】

105.【最长连续子序列】

 106.【根据某条件聚类最少交换次数】

107.【跳格子游戏】


1.【寻找身高相近的小朋友】

【寻找身高相近的小朋友】小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。

输入描述:

第一行为正整数H和N,0

输出描述:

输出排序结果,各正整数以空格分割。和小明身高差绝对值最小的小朋友排在前面,和小明身高差绝对值最大的小朋友排在最后,如果两个小朋友和小明身高差一样,则个子较小的小朋友排在前面。

示例1:

输入

100 10

95 96 97 98 99101 102 103 104 105           

输出

99 101 98 102 97103 96 104 95 105

2.【火星文计算】

【火星文计算】已知火星人使用的运算符为#、$,其与地球人的等价公式如下:

x#y = 2x+3y+4

x$y = 3*x+y+2

其中x、y是无符号整数
地球人公式按C语言规则计算
火星人公式中,$的优先级高于#,相同的运算符,按从左到右的顺序计算 现有一段火星人的字符串报文,请你来翻译并计算结果。
输入描述:

火星人字符串表达式(结尾不带回车换行)
**输入的字符串说明: **

字符串为仅由无符号整数和操作符(#、$)

组成的计算表达式。例如:123#45#6778

用例保证字符串中,操作数与操作符之间没有任何分隔符。
用例保证操作数取值范围为32位无符号整数。
保证输入以及计算结果不会出现整型溢出。
保证输入的字符串为合法的求值报文,例如:123#45#6778
保证不会出现非法的求值报文,例如类似这样字符串:
#4$5 //缺少操作数
4$5# //缺少操作数
4#$5 //缺少操作数
4 $5 //有空格
3+4-5*6/7 //有其它操作符
12345678987654321$54321 //32位整数计算溢出
输出描述:

根据输入的火星人字符串输出计算结果(结尾不带回车换行)

示例

输入:

7#6$5#12
输出:

226
说明:

7#6$5#12=7#(3*6+5+2)#12
=7#25#12
=(2*7+3*25+4)#12
=93#12
=2*93+3*12+4
=226


3.【最长的指定瑕疵度的元音字串】

【最长的指定瑕疵度的元音字串】最长的指定瑕疵度的元音子串 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
开头和结尾都是元音字母(aeiouAEIOU)的字符串为 元音字符串 ,其中混杂的非元音字母数量为其 瑕疵度 。比如:
· “a” 、 “aa”是元音字符串,其瑕疵度都为0

· “aiur”不是元音字符串(结尾不是元音字符)

· “abira”是元音字符串,其瑕疵度为2

给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。

子串:字符串中任意个连续的字符组成的子序列称为该字符串的子串。

收起
输入描述:
首行输入是一个整数,表示预期的瑕疵度flaw,取值范围[0, 65535]。
接下来一行是一个仅由字符a-z和A-Z组成的字符串,字符串长度(0, 65535]。
输出描述:
输出为一个整数,代表满足条件的元音字符子串的长度。

示例1
输入
0
asdbuiodevauufgh
输出
3
说明
满足条件的最长元音字符子串有两个,分别为uio和auu,长度为3。

示例2
输入
2
aeueo
输出
0
说明
没有满足条件的元音字符子串,输出0
示例3
输入
1
aabeebuu
输出
5
说明
满足条件的最长元音字符子串有两个,分别为aabee和eebuu,长度为5

4.【消消乐游戏】

【消消乐游戏】游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。

在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。

输出最终得到的字符串长度。

5.【判断字符串子序列】

【判断字符串子序列】给定字符串target和source,判断target是否为source的子序列。你可以认为target和source 中仅包含英文小写字母,字符串source可能会很长,长度~=500,000,而target是个短字符串,长度<=100。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串,例如,'abc’是’aebycd’的一个子序列,而’ayb’不是。请找出最后一个序列的起始位置。
示例输入:
abc
abcaybec
示例输出:
3
因为aybec中的abc的a在整个字符串的位置索引是3

6.【整数对最小和】

【整数对最小和】给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。
注意:两对元素如果对应于array1、array2中两个下标均相同,则视为同一对元素。

输入描述
输入两行数组array1、array2,每行首个数字为数组大小size(0 0 0 接下来一行为正整数k
0

输出描述
满足要求的最小和

示例1

输入
3 1 1 2
3 1 2 3
2
输出
4

7.【按区间反转文章片段】

题目描述:

输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。
例如输入字符串 “I am a developer.”,区间[0,3]则输出 “developer. a am I”。
输入描述:

使用换行隔开三个参数
第一个参数为英文文章内容即英文字符串
第二个参数为反转起始单词下标,下标从0开始
第三个参数为结束单词下标,
输出描述:

反转后的英文文章片段,所有单词之间以一个半角空格分割进行输出

示例

输入:

I am a developer.

1

2

输出:

I a am developer.
输入:

Hello world!
0
1
输出:

world! Hello
说明:

输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。
输入:

I am a developer.
0
3
输出:

developer. a am I
说明:

如果两个单词见有多余的空格,将反转后单词间的空格减少到只含一个。
输入:

Hello!
0
3
输出:

EMPTY
说明:

指定反转区间只有一个单词,或无有效单词则统一输出EMPTY。

8.【最长方连续方波信号】

【最长方连续方波信号】最长方连续方波信号 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可,方波信号高位用1标识,低位用0标识,如图:
说明:
1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但101,1010,0101不是
2)输入的一串方波信号是由一个或多个完整信号组成
3) 两个相邻信号之间可能有0个或多个低位,如0110010,011000010
4) 同一个信号中可以有连续的高位,如01110101011110001010,前14位是一个具有连续高位的信号
5) 完全连续交替方波是指10交替,如01010是完全连续交替方波,0110不是
 输入描述: 输入信号字符串(长度>=3且<=1024): 0010101010110000101000010 注:输入总是合法的,不用考虑异常情况
输出描述: 输出最长的完全连续交替方波信号串: 01010 若不存在完全连续交替方波信号串,输出 -1


示例1
输入
00101010101100001010010
输出
01010
备注:
输入信号串中有三个信号:0 010101010110(第一个信号段) 00 01010(第二个信号段) 010(第三个信号段)
第一个信号虽然有交替的方波信号段,但出现了11部分的连续高位,不算完全连续交替方波,在剩下的连续方波信号串中01010最长

9.【数组拼接】

现在有多组整数数组需要将他们合并成一个新的数组
合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组,取完的内容会删除掉,如果改行不足固定长度,或者已经为空,则直接取出剩余部分的内容放到新的数组中继续下一行

输入描述
  第一 行每次读取的固定长度
  长度0   第二行是整数数组的数目
  数目 0   第3~n行是需要合并的数组
  不同的数组用换行分割
  元素之间用逗号分割
  最大不超过100个元素

 输出描述
  输出一个新的数组,用逗号分割

  示例1
  输入
      3
      2
      2,5,6,7,9,5,7
      1,7,4,3,4
  输出
      2,5,6,1,7,4,7,9,5,3,4,7

  说明  获得长度3和数组数目2
     先遍历第一行 获得2,5,6
     再遍历第二行 获得1,7,4
     再循环回到第一行获得7,9,5
     再遍历第二行获得3,4
     再回到第一行获得7

  示例2
  输入
     4
     3
     1,2,3,4,5,6
     1,2,3
     1,2,3,4
   输出
     1,2,3,4,1,2,3,1,2,3,4,5,6

10.【停车场车辆统计】

题目描述:
特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。
车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。
统计停车场最少可以停多少辆车,返回具体的数目。
输入描述:
整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。

输出描述:
整型数字字符串,表示最少停车数目。

示例 1:

输入
1,0,1
输出
2
说明
1个小车占第1个车位
第二个车位空
1个小车占第3个车位
最少有两辆车
示例 2:

输入
1,1,0,0,1,1,1,0,1
输出
3
说明
1个货车占第1、2个车位
第3、4个车位空
1个卡车占第5、6、7个车位
第8个车位空
1个小车占第9个车位
最少3辆车

11.【乱序整数序列两数之和绝对值最小】

标题:乱序整数序列两数之和绝对值最小 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限

给定一个随机的整数(可能存在正整数和负整数)数组 nums ,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。
每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

输入描述:

一个通过空格分割的有序整数序列字符串,最多1000个整数,且整数数值范围是 [-65535, 65535]。

输出描述:

两数之和绝对值最小值
示例1

输入

-1 -3 7 5 11 15

输出

-3 5 2

说明

因为 |nums[0] + nums[2]| = |-3 + 5| = 2 最小,所以返回 -3 5 2

12.【最大括号深度】

现有一字符串仅由( , ) , { , } , [ , ]六种括号组成。若字符串满足以下条件之一,则为无效字符串:
1、任一类型的左右括号数量不相等;
2、存在未按正确顺序(先左后右)闭合的括号。

输出括号的最大嵌套深度,若字符串无效则输出0.
0<=字符串长度<=100000

输入描述:
一个只包( , ) , { , } , [ , ]的字符串。

输出描述:
一个整数,最大括号深度

示例1:
输入:[]
输出:1


13.【打印任务排序】

题目描述
某个打印机根据打印队列执行打印任务。打印任务分为九个优先级,分别采用数字1~9表示,数字越大优先级越高。打印机每次从队列头部取出第一个任务A,然后检查队列余下任务中有没有比A优先级更高的任务,如果有比A优先级高的任务,则将任务A放到队列尾部,否则执行任务A的打印。请编写一个程序,根据输入的打印队列,输出实际打印顺序。

输入描述
函数原型:
void printOrder(const int input[], int len, int output[])
参数input表示打印队列,为1~9(优先级)组成的数组,数组索引0代表头部。对于C/C++参数len代表input数组长度,假定参数合法有效;

14.【单词接龙】

题目描述:

单词接龙的规则是:

用于接龙的单词首字母必须要前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;
已经参与接龙的单词不能重复使用。
现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙。

请输出最长的单词串,单词串是单词拼接而成,中间没有空格。

输入描述:

输入的第一行为一个非负整数,表示起始单词在数组中的索引K,0 <= K < N。
输入的第二行为一个非负整数,表示单词的个数N。
接下来的N行,分别表示单词数组中的单词。
输出描述:

输出一个字符串,表示最终拼接的单词串。
备注:

单词个数N的取值范围为[1, 20]
单个单词的长度的取值范围为[1, 30]

15.【数组去重和排序】

题目描述:
给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。

输入描述:
一个数组

输出描述:
去重排序后的数组

示例 1:
输入
1,3,3,3,2,4,4,4,5
1
输出
3,4,1,2,5
1
备注
数组大小不超过100 数组元素值大小不超过100

16.【找最小数】

题目描述:

给一个正整数num1,计算出新正整数num2,num2为num1中移除N位数字后的结果,需要使得num2的值最小
输入:
1.输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数num1,num1长度小于32
2.输入的第二行为需要移除的数字的个数,小于num1长度
示例

10
1
输出0
10200
1
输出200
2615371
4
输出131


17.【按身高和体重排队】

题目描述:

某学校举行运动会,学生们按编号(1、2、3…n)进行标识现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列,对于身高体重都相同的人,维持原有的编号顺序关系。
请输出排列后的学生编号
输入描述:

两个序列,每个序列由N个正整数组成,(0 第一个序列中的数值代表身高
第二个序列中的数值代表体重
输出描述:

排列结果,每个数值都是原始序列中的学生编号,编号从1开始,身高从低到高,身高相同体重从轻到重,体重相同维持原来顺序。
示例:

输入:

4
100 100 120 130
40 30 60 50
输出:

2134
输入:

3
90 110 90
45 60 45
输出:

132


18.【勾股数元组】

题目描述:

如果三个正整数A B C ,A²+B²=C²则为勾股数
如果ABC之间两两互质,即A与B A与C B与C均互质没有公约数,
则称其为勾股数元组。
请求出给定n m 范围内所有的勾股数元组
输入描述
起始范围 1 输出目描述
abc 保证a 多组勾股数元组 按照a升序b升序 c升序的排序方式输出。
给定范围内,找不到勾股数元组时,输出  Na

案例1
 输入
  1
  20
  输出
   3 4 5
   5 12 13
   8 15 17

案例2:
  输入
    5
    10
  输出
    Na

19.【乱序整数序列两数之和绝对值最小】

题目描述:

时间限制:1秒 | 内存限制:262144K 

给定一个随机的整数(可能存在正整数和负整数)数组 nums ,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。
每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

输入描述:

一个通过空格分割的有序整数序列字符串,最多1000个整数,且整数数值范围是 [-65535, 65535]。

输出描述:

两数之和绝对值最小值

示例1

输入

-1 -3 7 5 11 15

输出

-3 5 2

说明

因为 |nums[0] + nums[2]| = |-3 + 5| = 2 最小,所以返回 -3 5 2

20.【解压报文】

题目描述:
解压报文 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
为了提升数据传输的效率,会对传输的报文进行压缩处理。输入一个压缩后的报文,请返回它解压后的原始报文。
压缩规则:n[str],表示方括号内部的 str 正好重复 n 次。注意 n 为正整数(0 < n <= 100),str只包含小写英文字母,不考虑异常情况。
" “输入描述:
输入压缩后的报文:
1)不考虑无效的输入,报文没有额外的空格,方括号总是符合格式要求的;
2)原始报文不包含数字,所有的数字只表示重复的次数 n ,例如不会出现像 5b 或 3[8] 的输入;
输出描述:
解压后的原始报文
注:
1)原始报文长度不会超过1000,不考虑异常的情况
示例1
输入
3[k]2[mn]
输出
kkkmnmn
说明
k 重复3次,mn 重复2次,最终得到 kkkmnmn
示例2
输入
3[m2[c]]
输出
mccmccmcc
说明
m2[c] 解压缩后为 mcc,重复三次为 mccmccmcc”

21.【数据分类】

对一个数据a进行分类,分类方法为:此数据a(四个字节大小)的四个字节相加%一个给定的值b,如果得到的结果小于一个给定的值c,则此结果即为数据a的类型;如果得到的结果大于或者等于c,则此结果无效即为数据a的类型无效。比如一个数据a=0x01010101,b=3,按照分类方法计算(0x01+0x01+0x01+0x01)%3=1,所以如果c=2,则此a的类型是1,如果c=1,则此a的类型是无效。输入12个数据,第一个数据为c,第二个数据为b,剩余10个数据为需要分类的数据a。计算数据最多的类型(有效类型)有多少个数据。
输入描述:
输入12个数据,第一个数据为c,第二个数据为b,剩余10个数据为需要分类的数据a。
输出描述:
计算数据最多的类型(有效类型)有多少个数据。
示例1
输入
5、2、1、2、3、4、5、6、7、8、9、10
输出
5

22.【统计射击比赛成绩】

题目描述
给定一个射击比赛成绩单,包含多个选手若干次射击的成绩分数,请对每个选手按其最高3个分数之和进行降序排名,输出降序排名后的选手ID序列。

条件如下:

一个选手可以有多个射击成绩的分数,且次序不固定。
如果一个选手成绩少于3个,则认为选手的所有成绩无效,排名忽略该选手。
如果选手的成绩之和相等,则成绩之和相等的选手按照其ID降序排列。
输入描述:

输入第一行,一个整数N,表示该场比赛总共进行了N次射击,产生N个成绩分数(2<=N<=100)。
输入第二行,一个长度为N整数序列,表示参与每次射击的选手ID(0<=ID<=99)。
输入第三行,一个长度为N整数序列,表示参与每次射击的选手对应的成绩(0<=成绩<=100)。
输出描述:
符合题设条件的降序排名后的选手ID序列。

示例1
输入

13
3,3,7,4,4,4,4,7,7,3,5,5,5
53,80,68,24,39,76,66,16,100,55,53,80,55

输出

5,3,7,4

说明

该场射击比赛进行了13次,参赛的选手为{3,4,5,7}。 3号选手成绩:
53,80,55,最高3个成绩的和为:80+55+53=188。
4号选手成绩:24,39,76,66,最高3个成绩的和为:76+66+39=181。
5号选手成绩:53,80,55,最高3个成绩的和为:80+55+53=188。
7号选手成绩:68,16,100,最高3个成绩的和为:100+68+16=184。
比较各个选手最高3个成绩的和,有3号=5号>7号>4号,由于3号和5号成绩相等且ID号5>3, 所以输出为:5,3,7,4

23.【服务器广播】

题目:服务器连接方式包括直接相连,间接连接。 A 和 B 直接连接, B 和 c 直接连接,则 A 和 c 间接连接。直接连接和间接连接都可以发送广播。
给出一个 N * N 数组,代表 N 个服务器, matrix[i][j] == 1 ,则代表 i 和 j 直接连接;不等于 1 时,代表 i 和 j 不直接连接。 matrix[i][i]== 1 ,即自己和自己直接连接。 matrix[i][j]==matrix[j][i] 。计算初始需要给几台服务器广播,才可以使侮个服务器都收到广播。
输入描述: n * n 矩阵,

[[1,1,0],[1,1,0],[0,0,1]]
1
输出描述:整数

2

24.【查找众数及中位数】

题目描述:
1.众数是指一组数据中出现次数量多的那个数,众数可以是多个
2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,
如果这组数据的个数为偶数,那就把中间的两个数之和除以 2,所得的结果就是中位数
3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数
输入描述:
输入一个一维整型数组,数组大小取值范围 0 < N < 1000,数组中每个元素取值范围 0 < E < 1000
输出描述:
输出众数组成的新数组的中位数
示例 1:
输入
10 11 21 19 21 17 21 16 21 18 15
输出
21
25.【分糖果】

题目描述:

小明从糖果盒中随意抓一把糖果 每次小明会取出一半的糖果分给同学们 当糖果不能平均分配时 小明可以从糖果盒中(假设盒中糖果足够)取出一个或放回一个糖果 小明至少需要多少次(取出放回和平均分配均记一次)能将手中糖果分至只剩一颗

示例: 输入 :15 输出: 5 输入 :4 输出:2

26.【最长的指定瑕疵度的元音字串】

题目描述:

最长的指定瑕疵度的元音子串 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
开头和结尾都是元音字母(aeiouAEIOU)的字符串为 元音字符串 ,其中混杂的非元音字母数量为其 瑕疵度 。比如:
· “a” 、 “aa”是元音字符串,其瑕疵度都为0

· “aiur”不是元音字符串(结尾不是元音字符)

· “abira”是元音字符串,其瑕疵度为2

给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。

子串:字符串中任意个连续的字符组成的子序列称为该字符串的子串。

收起
输入描述:
首行输入是一个整数,表示预期的瑕疵度flaw,取值范围[0, 65535]。
接下来一行是一个仅由字符a-z和A-Z组成的字符串,字符串长度(0, 65535]。
输出描述:
输出为一个整数,代表满足条件的元音字符子串的长度。

示例1
输入
0
asdbuiodevauufgh
输出
3
说明
满足条件的最长元音字符子串有两个,分别为uio和auu,长度为3。

示例2
输入
2
aeueo
输出
0
说明
没有满足条件的元音字符子串,输出0
示例3
输入
1
aabeebuu
输出
5
说明
满足条件的最长元音字符子串有两个,分别为aabee和eebuu,长度为5

27.【we a are team[机房]】

题目描述:

总共有n个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在一个团队中,具体的:
1、消息构成为a b c,整数a、b分别代表两个人的标号,整数c代表指令
2、c == 0代表a和b在一个团队内
3、c == 1代表需要判定a和b的关系,如果a和b是一个团队,输出一行'we are a team',如果不是,输出一行'we are not a team'
4、c为其他值,或当前行a或b超出1~n的范围,输出‘da pian zi'
输入描述:
1、第一行包含两个整数n,m(1<=n,m<100000),分别表示有n个人和m条消息
2、随后的m行,每行一条消息,消息格式为:a b c(1<=a,b<=n,0<=c<=1)
输出描述:
1、c ==1,根据a和b是否在一个团队中输出一行字符串,在一个团队中输出‘we are a team',不在一个团队中输出'we are not a team’
2、c为其他值,或当前行a或b的标号小于1或者大于n时,输出字符串‘da pian zi'
3、如果第一行n和m的值超出约定的范围时,输出字符串'Null'
输入:
5 7
1 2 0
4 5 0
2 3 0
1 2 1
2 3 1
4 5 1
1 5 1
输出:
We are a team
We are a team
We are a team
We are not a team
输入:
5 6
1 2 0
1 2 1
1 5 0
2 3 1
2 5 1
1 3 2
输出:
we are a team
we are not a team
we are a team
da pian zi

28.【字符串中包含的最长的非严格递增连续数字序列长度】

题目描述:

输入一个字符串仅包含大小写字母和数字
求字符串中包含的最长的非严格递增连续数字序列长度
比如:
    12234属于非严格递增数字序列
示例:
输入
    abc2234019A334bc
输出
    4
说明:
    2234为最长的非严格递增连续数字序列,所以长度为4

    aaaaaa44ko543j123j7345677781
    aaaaa34567778a44ko543j123j71
    345678a44ko543j123j7134567778aa

29.【最长的连续子序列】

题目描述:

有N个正整数组成的一个序列
给定一个整数sum
求长度最长的的连续子序列使他们的和等于sum
返回次子序列的长度
如果没有满足要求的序列 返回-1
案例1:
输入
1,2,3,4,2
6
输出
3
解析:1,2,3和4,2两个序列均能满足要求
所以最长的连续序列为1,2,3 因此结果为3

30.【考勤信息】

题目描述:

公司用一个字符串来表示员工的出勤信息:

absent:缺勤

late:迟到

leaveearly:早退

present:正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:

缺勤不超过一次;没有连续的迟到/早退;任意连续7次考勤,缺勤/迟到/早退不超过3次

present

present absent present present leaveearly present absent

输出描述:

根据考勤数据字符串,如果能得到考勤奖,输出"true";否则输出"false",对于输入示例的结果应为:

true false

31.【寻找相同子串】

题目描述:

给你两个字符串t和p
要求从t中找到一个和p相同的连续子串,并输出该子串第一个字符的下标
输入描述:

输入文件包括两行 分别表示字符串t和p
保证t的长度不小于p
且t的长度不超过1000000
p的长度不超过10000
输出描述:

如果能从t中找到一个和p相等的连续子串
则输出该子串第一个字符在t中的下标
下标从左到右依次为1,2,3,…;
如果不能,则输出 “No”
如果含有多个这样的子串,则输出第一个字符下标最小的
示例

输入:

AVERDXIVYERDIAN
RDXI
输出:

4

32.【检查是否存在满足条件的数字组合】

给定一个正整数数组 检查数组中是否存在满足规则的数组组合 规则: A=B+2C

输入描述 第一行输出数组的元素个数 接下来一行输出所有数组元素 用空格隔开

输出描述 如果存在满足要求的数 在同一行里依次输出 规则里 A/B/C的取值 用空格隔开 如果不存在输出0

示例1: 输入 4 2 7 3 0 输出 7 3 2 说明: 7=3+2*2

示例2: 输入 3 1 1 1 输出 0 说明找不到满足条件的组合

备注: 数组长度在3~100之间 数组成员为0~65535 数组成员可以重复 但每个成员只能在结果算式中使用一次 如 数组成员为 [0,0,1,5] 0出现两次允许,但结果0=0+2*0不允许 因为算式中使用了3个0 用例保证每组数字里最多只有一组符合要求的解

33.【字符串筛选排序】

题目描述:
输入一个由 n 个大小写字母组成的字符串,按照 Ascii 码值从小到大的排序规则,查找字符串中第 k 个最小
ascii 码值的字母(k >= 1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为 0)。
k 如果大于字符串长度,则输出最大 ascii 值的字母所在字符串的位置索引,如果有重复的字母,则输出字母的最小位置索引。
输入描述:
第一行输入一个由大小写字母组成的字符串
第二行输入 k,k 必须大于 0,k 可以大于输入字符串的长度
输出描述:
输出字符串中第 k 个最小 ascii 码值的字母所在字符串的位置索引。k 如果大于字符串长度,则输出最大 ascii 值的字母所
在字符串的位置索引,如果第 k 个最小 ascii 码
值的字母存在重复,则输出该字母的最小位置索引。
示例 1:
输入
AbCdeFG
3
输出
5

34.【仿LISP字符串运算】

题目描述
LISP语言唯一的语法就是括号要配对。
形如 (OP P1 P2 …),括号内元素由单个空格分割。
其中第一个元素OP为操作符,后续元素均为其参数,参数个数取决于操作符类型
注意:参数 P1, P2 也有可能是另外一个嵌套的 (OP P1 P2 …)
当前OP类型为add/sub/mul/div(全小写),分别代表整数的加减乘除法。简单起见,所以OP参数个数为2
举例
-输入:(mul 3 -7)输出:-21
输入:(add 1 2) 输出:3
输入:(sub (mul 2 4) (div 9 3)) 输出 :5
输入:(div 1 0) 输出:error
常规方法是用两个栈分别存放操作数和操作符,本文用一个栈来实现,首先从后往前提取操作数和操作符存放在vector,然后判断

35.【5键键盘的输出】

题目描述:

有一个特殊的五键键盘,上面有A、Ctrl-C、Ctrl-X、Ctrl-V、Ctrl-A A键在屏幕上输出一个字母A,Ctrl-C将当前所选的字母复制到剪贴板,Ctrl-X将当前选择的字母复制到剪贴板并清空所选择的字母,Ctrl-V将当前剪贴板的字母输出到屏幕,Ctrl-A选择当前屏幕中所有字母
条件如下:

剪贴板初始为空
新的内容复制到剪贴板会覆盖原有内容
当屏幕中没有字母时,Ctrl-A无效
当没有选择字母时Ctrl-C、Ctrl-X无效
当有字母被选择时A和Ctrl-V这两个输出功能的键,会先清空所选的字母再进行输出
给定一系列键盘输入,输出最终屏幕上字母的数量
输入描述:

输入为一行
为简化解析用数字12345分别代替A、Ctrl-C、Ctrl-X、Ctrl-V、Ctrl-A的输入
数字用空格分割
输出描述:

输出一个数字为屏幕上字母的总数量
示例一

输入:

1 1 1
输出:

3
示例二

输入:

1 1 5 1 5 2 4 4
输出:

2

36.【内存资源分配】

题目描述:

有一个简易内存池,内存按照大小粒度分类,每个粒度有若干个可用内存资源,用户会进行一系列内存申请,需要按需分配内存池中的资源,返回申请结果成功失败列表。
分配规则如下:
分配的内存要大于等于内存申请量,存在满足需求的内存就必须分配,优先分配粒度小的,但内存不能拆分使用。
需要按申请顺序分配,先申请的先分配。
有可用内存分配则申请结果为true,没有可用内存分配则返回false。
注:不考虑内存释放。

输入描述:

第一行为内存池资源列表,包含内存粒度数据信息,粒度数据间用逗号分割,一个粒度信息内部用冒号分割,冒号前为内存粒度大小,冒号后为数量。资源列表不大于1024,每个粒度的数量不大于4096。

第二行为申请列表,申请的内存大小间用逗号分隔。申请列表不大于100000。

如:

64:2,128:1,32:4,1:128
50,36,64,128,127
1
2
输出描述:

输出为内存池分配结果。

如:

true,true,true,false,false
1
示例

输入:

64:2,128:1,32:4,1:128
50,36,64,128,127
1
2
输出:

true,true,true,false,false
1
说明:

内存池资源包含:64K共2个、128K共1个、32K共4个、1K共128个的内存资源;

针对50,36,64,128,127的内存申请序列,分配的内存依次是:64,64,128,NULL,NULL,

第三次申请内存时已经将128分配出去,因此输出结果是:

true,true,true,false,false

37.【猴子爬山】

天一只顽猴想要从山脚爬到山顶
  途中经过一个有n个台阶的阶梯,但是这个猴子有个习惯,每一次只跳1步或3步
  试问?猴子通过这个阶梯有多少种不同的跳跃方式

  输入描述:
    输入只有一个这个数n    0     此阶梯有多个台阶
  输出描述:
    有多少种跳跃方式

  实例:
   输入
     50
   输出
      122106097

   输入
      3
   输出
      2

38.【计算疫情扩散时间】

计算疫情扩散时间 | 时间限制:1秒 | 内存限制:32768K | 语言限制:不限
在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。感染区域每天都会把周围(上下左右)的4个区域感染。
请根据给定的地图计算,多少天以后,全部区域都会被感染。

如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回-1
收起
输入描述:
一行N*N个数字(只包含0,1,不会有其他数字)表示一个地图,数字间用,分割,0表示未感染区域,1表示已经感染区域
每N个数字表示地图中一行,输入数据共表示N行N列的区域地图。
例如输入1,0,1,0,0,0,1,0,1,表示地图
1,0,1
0,0,0
1,0,1
输出描述:
一个整数,表示经过多少天以后,全部区域都被感染
示例1
输入
1,0,1,0,0,0,1,0,1
输出
2
说明
1天以后,地图中仅剩余中心点未被感染;2天以后,全部被感染。
示例2
输入
0,0,0,0
输出
-1
说明
无感染区域
示例3
输入
1,1,1,1,1,1,1,1,1
输出
-1
说明
全部都感染
备注:
1<=N<200

39.【计算GPU算力】

为了充分发挥Gpu算力,
 需要尽可能多的将任务交给GPU执行,
 现在有一个任务数组,
 数组元素表示在这1s内新增的任务个数,
 且每秒都有新增任务,
 假设GPU最多一次执行n个任务,
 一次执行耗时1s,
 在保证Gpu不空闲的情况下,最少需要多长时间执行完成。

 输入描述
   第一个参数为gpu最多执行的任务个数
   取值范围1~10000
   第二个参数为任务数组的长度
   取值范围1~10000
   第三个参数为任务数组
   数字范围1~10000

 输出描述
   执行完所有任务需要多少秒

 例子
   输入
    3
    5
    1 2 3 4 5
   输出
    6

    说明,一次最多执行3个任务  最少耗时6s

  例子2
    输入
     4
     5
     5 4 1 1 1
    输出
     5

   说明,一次最多执行4个任务  最少耗时5s

40.【字符串变换最小字符串】

题目描述:

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。
变换规则:交换字符串中任意两个不同位置的字符。
输入描述:

一串小写字母组成的字符串s
输出描述:

按照要求进行变换得到的最小字符串
备注:

s是都是小写字符组成
1<=s.length<=1000
示例

输入:

abcdef
输出:

abcdef
说明:

abcdef已经是最小字符串,不需要交换
输入:

bcdefa
输出:

acdefb
说明:

a和b进行位置交换,可以得到最小字符串

41.【篮球比赛】

篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。给出10个球员的战斗力,如果你是教练,你该如何分队,才能达到最佳训练效果?请输出该分队方案下的最小战斗力差值。

输入描述:

10个篮球队员的战斗力(整数,范围[1,10000]),战斗力之间用空格分隔,如:10 9 8 7 6 5 4 3 2 1

不需要考虑异常输入的场景。

输出描述:

最小的战斗力差值,如:1

示例1

输入

10 9 8 7 6 5 4 3 2 1

输出

1

说明

1 2 5 9 10分为一队,3 4 6 7 8分为一队,两队战斗力之差最小,输出差值1。备注:球员分队方案不唯一,但最小战斗力差值固定是1。

这是一道动态规划的问题,难度较高,而且因为要求均分2组,还不太好转化为典型的背包问题。

在知道这是一道动态规划问题之前,我给出了自己的解法(目前我认为这个解法应该是错误的,但暂时还没有找到可以推翻这种解法的测试用例,所以暂时保留了这个解法)。

其基本思路为:

1.首先将队员按照战斗力排序;

2.为了保证战斗力均衡,可以得到战斗力最强的和最弱的必然分到一组,于是得到第一个小的分组(最强和最弱),期战斗力之和为SA,分到A组

3.在剩下的队伍当中两两组合,寻找战斗力最接近SA的组合,分到B组,其战斗力之和为SB,然后寻找最大最小的组合,然后更新SA(或者SB,这个需要在中间比较,看这个组合是放到SA合适还是SB合适),然后在剩下的组合当中寻找两两组合,使得SA和SB的差值最小,直到最后一组;

4.最后一组需要特殊处理一下,因为可能只有2个队员了,此时需要根据SA和SB的值,合理分配成员,最终得到分组结果。

42.【连续字母长度】

题目描述:

给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。
输入描述:

第一行有一个子串(1<长度<=100),只包含大写字母。
第二行为 k的值
输出描述:

输出连续出现次数第k多的字母的次数。
示例

输入:

AABAAA
2
输出:

1
说明:

同一字母连续出现最多的A 3次
第二多2次 但A出现连续3次
输入:

AAAAHHHBBCDHHHH
3
输出:

2
说明:

同一字母连续出现的最多的是A和H,四次
第二多的是H,3次
43.【素数之积】

**题目:

**RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的难度,数据越大,安全系数越高,给定一个32位整数,请对其进行因数分解,找出是哪两个素数的乘积。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章