2023大厂真题提交网址(含题解):
www.CodeFun2000.com(http://101.43.147.120/)
最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
完整真题解析: 【2023秋招】10月15日华为od三道题及满分题解
第一题:字符串变换最小字符串
题目内容
给定个字符串
s
s
s ,最多只能进行一次变换, 返回变换后能得到的最小字符串(按照字典序进行比较)。
变换规则:交换字符串中任意两个不同位置的字符。
输入描述
一串小写字母组成的字符串
s
s
s 。
字符串
s
s
s 中均为小写字母。
1
≤
s
.
l
e
n
g
t
h
≤
1000
1 \leq s.length \leq 1000
1≤s.length≤1000
输出描述
按照要求进行变换得到的最小字符串。
样例
样例一:
输入
abcdef
输出
abcdef
样例解释
字符串 abcdef
已经是最小字符串,不需要进行变换。
样例二:
输入
bcdefa
输出
acdefb
样例解释
a
和 b
进行位置变换,可以得到最小字符串。
第二题:TLV编码
题目内容
TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用 T a g Tag Tag 标识, T a g Tag Tag 在码流中唯不重复, L e n g t h Length Length 表示信元 V a l u e Value Value 的长度, V a l u e Value Value 表示信元的值。
码流以某信元的 T a g Tag Tag 开头, T a g Tag Tag 固定占一个字节, L e n g t h Length Length 固定占两个字节,字节序为小端序。
现给定TLV格式编码的码流,以及需要解码的信元 T a g Tag Tag ,请输出该信元的 V a l u e Value Value 。
输入码流的16进制字符中,不包括小写字母,且要求输出的的16进制字符串中也不要包含小写字母;
码流字符串的最大长度不越过 50000 50000 50000 个字节。
输入描述
输入的第一行为一个字符串,表示待解码信元的 T a g Tag Tag ;
输入的第二行为一个字符串,表示待解码的16进制码流,字节之间用空格分隔。
输出描述
输出一个字符串,表示待解码信元以16进制表示的 v a l u e value value 。
样例
输入
31
32 01 00 AE 90 02 00 01 02 30 03 00 AB 32 31 31 02 00 32 33 33 01 00 cC
输出
32 33
样例解释
需要解析的信元的 T a g Tag Tag 是 31 31 31
从码流的起始处开始匹配, T a g Tag Tag 为 32 32 32 的信元长度为 1 1 1 (01 00, 小端序表示为1) ;
第二个信元的 T a g Tag Tag 是 90 90 90 ,其长度为 2 2 2 ;
第三个信元的 T a g Tag Tag 是 30 30 30 ,其长度为 3 3 3 ;
第四个信元的 T a g Tag Tag 是 31 31 31 ,其长度为 2 2 2 (02 00)
所以返回长度后面的两个字节即可,即 32 32 32 33 33 33 。
第三题:计算疫情扩散时间
题目内容
在一个地图中(地图由 n × n n \times n n×n 个区域组成),有部分区域被感染病菌。
感染区域每天都会把周围(上下左右)的4个区域感染。
请根据给定的地图计算,多少天以后,全部区域都会被感染。
如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回 − 1 -1 −1 。
输入描述
一行
n
×
n
n \times n
n×n个数字(只包含
0
0
0 ,
1
1
1 , 不会有其他数字)表示一个地图,数字间用 ,
分割,
0
0
0 表示未感染区域,
1
1
1 表示已经感染区域。
每 n n n 个数字表示地图中一行,输入数据共表示 n n n 行 n n n 列的区域地图。
例如输入 1,0,1,0,0,0,1,0,1
,
表示地图
1,0,1
0,0,0
1,0,1
输出描述
一个整数,表示经过多少天以后,全部区域都被感染。
样例
样例一
输入
1,0,1,0,0,0,1,0,1
输出
2
样例解释
第一天会将区域感染如下:
1,1,1
1,0,1
1,1,1
第二天区域全部被感染。
样例二
输入
0,0,0,0,0,0,0,0,0
输出
-1
样例解释
无感染区域
样例三
输入
1,1,1,1,1,1,1,1,1
输出
-1
样例解释
全部都感染。