AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0026. 神秘符文的拼接

中等通过率 31% · 提交 283 · 通过 89
模拟字符串数学

小慕正在设计一个复杂的魔法符文系统,这个符文由若干个符文片段拼接而成,每个片段都有自己特定的二进制。为了让符文能够顺利激活,小慕需要将所有片段的二进制位宽按照一定规则进行补齐,然后依次拼接起来。接着,小慕会把拼接后的二进制串转换成最终的符文,这个符文将在召唤仪式中用来引导强大的元素之力。 注意:如果某个符文片段的原始二进制长度已经超过了规定的位宽,那么就保持它原来的长度。最终得到的十六进制结果如果包含,需要将其去除。

提示:带虚线的词点一下有通俗解释。

输入描述

- 第一行包含一个整数 `n`,表示符文片段的数量。 - 第二行包含一个整数列表 `widths`,长度为 `n`,每个元素表示对应符文片段的位宽。 - 第三行包含一个整数列表 `values`,长度为 `n`,每个元素表示对应符文片段的十进制值。 - `1 <= n <= 1000` - `0 <= widths[i] <= 32` - `0 <= values[i] <= 2^32 - 1`

输出描述

- 输出一个大写的十六进制字符串,表示拼接后的二进制符文最终转化为十六进制后的结果。

示例

示例 1

输入

3
7 2 5
29 2 15

输出

ECF

说明:1. 在这片大陆上,巫师们根据魔法的规律,使用二进制符文表示每一个魔法元素: - `29` 被转化为 7 位二进制符文:`0011101` - `2` 被转化为 2 位二进制符文:`10` - `15` 被转化为 5 位二进制符文:`01111` 2. 巫师们将这些符文片段按照规定的规则拼接在一起:`00111011001111` 3. 然后,巫师使用古老的魔法公式将拼接后的二进制符文 `00111011001111` 转化为十六进制符文:`ECF`

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
.box { fill: #e8f4f8; stroke: #4a90d9; stroke-width: 1.5; rx: 6; ry: 6; } .arrow { stroke: #888; stroke-width: 2; fill: none; marker-end: url(#arrowhead); } .label { font-family: sans-serif; font-size: 14px; fill: #333; text-anchor: middle; } .small { font-family: sans-serif; font-size: 11px; fill: #555; text-anchor: middle; } .title { font-family: sans-serif; font-size: 16px; fill: #222; text-anchor: middle; font-weight: bold; } 神秘符文的拼接过程(示例) 29 → 7位 二进制: 0011101 2 → 2位 二进制: 10 15 → 5位 二进制: 01111 拼接二进制串 0011101 + 10 + 01111 = 00111011001111 二进制 → 十六进制 00111011001111 → ECF 输出: ECF
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「神秘符文的拼接」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。