2023大厂真题提交网址(含题解):
www.CodeFun2000.com(http://101.43.147.120/)
最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
完整真题解析:【2023秋招】10月16日华为od三道题及满分题解
第一题:字符串变换最小字符串
题目内容
输入 N N N 个互不相同的二维整数坐标, 求这 N N N 个坐标可以构成的正方形数量。(内积为零的两个向量重直)
输入描述
第一行输入为
N
N
N ,
N
N
N 代表坐标数量,
N
N
N为正整数。
N
≤
100
N \leq 100
N≤100
之后的
K
K
K 行输入为坐标
x
y
x\ y
x y 以空格分隔,
x
x
x ,
y
y
y 为整数,
−
10
≤
x
,
y
≤
10
-10 \leq x, y \leq 10
−10≤x,y≤10
输出描述
输出可以构成的正方形数量
样例
样例一:
输入
4
0 0
1 2
3 1
2 -1
输出
1
第二题:内存分配
题目内容
有一个简易内存池,内存按照大小粒度分类,每个粒度有若干个可用内存资源,用户会进行一系列内存申请, 需要按需分配内存池中的资源,返回申请结果成功失败列表。分配规则如下:
1、分配的内存要大于等于内存申请量,存在满足需求的内存就必须分配,优先分配粒度小的,但内存不能拆分使用。
2、需要按申请顺序分配,先申请的先分配。
3、有可用内存分配则申请结果为
t
r
u
e
true
true ,没有可用内存分配则返回
f
a
l
s
e
false
false 。
注:不考虑内存释放。
输入描述
输入为两行字符串:
第一行为内存池资源列表。包含内存粒度数据信息。粒度数据间用逗号分割,一个 粒度信息内部用冒号分割,冒号前为内存粒度大小,冒号后为数量。资源列表不大于1024,每个粒度的数量不大于4096
第二行为申请列表,申请的内大小间用逗号分隔。 中请列表不大于100000
输出描述
输出为内存池分配结果。
样例
输入
64:2,128:1,32:4,1:128
50,36,64,128,127
输出
true,true,true,false,false
样例解释
内存池资源包含:
64
K
64K
64K 共
2
2
2 个、
128
K
128K
128K 共
1
1
1 个、
32
K
32K
32K 共
4
4
4 个、
1
K
1K
1K 共
128
128
128 个的内存资源:
针对
50
,
36
,
64
,
128
,
127
50,36,64,128,127
50,36,64,128,127 的内存申请序列,分配的内
存依次是:
64
,
64
,
128
,
N
U
L
L
,
N
U
L
L
64, 64, 128, NULL,NULL
64,64,128,NULL,NULL ,第三次申请内存
时已经将
128
128
128 分配出去,所以是
N
U
L
L
NULL
NULL
第三题:最长完全连续交替方波
题目内容
输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可, 方波信号高位用 1 1 1 标识,低位用 0 0 0 标识。
说明:
1)一个完整的信号定以
0
0
0 开始然后以
0
0
0 结尾, 即
010
010
010 是一个完整信号,但
101
,
1010
,
0101
101,1010,0101
101,1010,0101 不是
2)输入的一串方波信号是由一个或多个完整信号组成
3)两个相邻信号之间可能有
0
0
0 个或多个低位,如
0110010
,
011000010
0110010,011000010
0110010,011000010
4)同一个信号中可以有连续的高位,如
01110101011110001010
01110101011110001010
01110101011110001010 ,前
14
14
14 位是一个既有连续高位的信号
5)完全连续交替方波是指
10
10
10 交替,如
01010
01010
01010 是完全连续交替方波,
0110
0110
0110 不是
输入描述
输入信号字符串(长度>=3且<=1024)
输入总是合法的,不用考虑异常情况
输出描述
输出最长的完全连续交替方波信号串
若不存在完全连续交替方波信号串,输出 − 1 -1 −1
样例
样例一
输入
0101010101100001010010
输出
01010
样例解释
输入信号中有三个信号:。
0
0
0
10101010110
10101010110
10101010110(第一个信号段)
00
00
00
01010
01010
01010(第二个信号段)
010
010
010 (第三个信号段)
第一个信号虽然有交替的方波信号段,但出现了
11
11
11 部分的连续高位,不算完全连续交替方波,在剩下的连续方波信号串中
01010
01010
01010 最长