【2023秋招】10月15日华为od三道题

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 1s.length1000

输出描述

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

样例

样例一:

输入

abcdef

输出

abcdef

样例解释

字符串 abcdef已经是最小字符串,不需要进行变换。

样例二:

输入

bcdefa

输出

acdefb

样例解释

ab 进行位置变换,可以得到最小字符串。

第二题: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

样例解释

全部都感染。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔子哥学算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值