华为OD机试真题 JavaScript 实现【箱子之形摆放】【2023 B卷 100分】,附详细解题思路

news2024/9/21 16:45:05

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、JavaScript算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

一、题目描述

要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上,输出箱子的摆放位置,例如:箱子ABCDEFG,空地宽为3。

摆放效果如下图:
在这里插入图片描述
则输出结果为:

AFG
BE
CD

二、输入描述

一行字符串,通过空格分割两部分,前面str部分表示箱子的字符串由数字或字母组成,后面部分是表示宽度的数字n,

如下:

ABCDEFG 3

三、输出描述

输出:

AFG
BE
CD

注:最后一行不得输出额外的空行

str只包含数字和数字,1<=len(str)<=1000,1<=n<=1000。

四、解题思路

  1. 将输入的字符串按空格分割为两部分,分别为箱子的字符串和空地的宽度;
  2. 创建一个HashMap map,用于存储每行的字符串;Key为行的下标,Value为对应的字符串;
  3. 遍历箱子的字符串,根据空地的宽度确定每个字符应该放置的行和列;
    • 计算当前字符所在的列,即columnIdx = i / num,其中i为当前字符的索引;
    • 如果columnIdx是偶数,则表示从左往右摆放,行索引不变,列索引为i % num;
    • 如果columnIdx是奇数,则表示从右往左摆放,行索引不变,列索引为num - 1 - (i % num),即倒序摆放;
    • 将当前字符添加到对应行的字符串中;
  4. 遍历HashMap map,按行输出箱子的摆放位置;
  5. 输出结果。

五、JavaScript算法源码

function arrangeBoxes(str, n) {
  const map = new Map();

  for (let i = 0; i < str.length; i++) {
    const columnIdx = Math.floor(i / n);
    let index;
    if (columnIdx % 2 === 0) {
      index = i % n;
    } else {
      index = n - 1 - (i % n);
    }
    const val = map.get(index) || '';
    map.set(index, val + str.charAt(i));
  }

  let result = '';
  for (let [key, value] of map.entries()) {
    result += value + '\n';
  }
  return result.trim();
}

六、效果展示

1、输入

ABCDEFGHIJKMLN 4

2、输出

AHI
BGJ
CFKN
DEML

3、说明

关键是要看破【偶索引正序、奇数列倒序】。

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【贪心的商人】【2023Q1 100分】

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Uniapp 中实现微信登录】

要在 Uniapp 中实现微信登录&#xff0c;需要完成以下步骤&#xff1a; 在微信开放平台注册一个应用&#xff0c;并获取到该应用的 AppID 和 AppSecret。 在 manifest.json 中点击App模块配置。勾选微信登录模块&#xff0c;填入该应用的 AppID 在代码中调用 uni.login 方法&…

学习记录——EGE-UNet、CFNet

EGE-UNet: an Efficient Group Enhanced UNet for skin lesion segmentation 上海交大 2023 MICCAI 基于 U-Net 进行魔改&#xff0c;用于解决医学图像&#xff08;尤其是皮肤病变&#xff09;分割中面临的问题。由于它是针对移动健康应用开发的&#xff0c;解决了当前许多模型…

docker下载镜像慢

下载镜像的方法 手动下载&#xff0c;然后再打开 此方法有局限&#xff0c;因为不是所有的镜像地址都支持http访问。 方法是打开此镜像市场网站&#xff0c;搜索自己想要的镜像&#xff0c;然后点击下载即可。 Linux一般是下载一个压缩包&#xff0c;解压之后docker load就可…

用于医学图像分类的双引导的扩散网络

文章目录 DiffMIC: Dual-Guidance Diffusion Network for Medical Image Classification摘要本文方法实验结果 DiffMIC: Dual-Guidance Diffusion Network for Medical Image Classification 摘要 近年来&#xff0c;扩散概率模型在生成图像建模中表现出了显著的性能&#xf…

【update】自动更新设计小记

前情纪要 老项目的一个更新迭代实例方式处理&#xff0c;从功能梳理&#xff0c;待流程设计,…了解功能&#xff0c;时序图&#xff0c;流程图记录 关系图梳理 流程图设计

ChatGPT及其工作原理;OpenAI申请注册商标GPT-5,引发关注

&#x1f989; AI新闻 &#x1f680; OpenAI申请注册商标GPT-5&#xff0c;引发关注 摘要&#xff1a;OpenAI已在上月18日申请注册商标GPT-5&#xff0c;显示该模型将提供文本生成、自然语言理解、语音转录、翻译、分析等功能。此前OpenAI曾表示尚未开始训练GPT-4的后继者GPT…

Java培训去哪?Java培训普遍花费贵吗?

随着Java开发语言1995年诞生到如今&#xff0c;跨越了20个春夏秋冬&#xff0c;是时下最热的开发语言之一&#xff0c;想要接触了解的人群越来越多。对绝大多数准备学习java这门的学员来讲&#xff0c;Java培训去哪是一个绕不开的问题。接下里笔者就和大家一起探讨一下。 普遍来…

解决有道云笔记自动更新问题 关闭有道云笔记自动更新 有道云笔记自动升级v7.2.8

解决有道云笔记自动更新问题 关闭有道云笔记自动更新 有道云笔记自动升级v7.2.8 一、背景 最近使用有道云笔记时&#xff0c;遇到bug问题&#xff1a; 打不开加密的笔记&#xff0c;发现是最新版本v7.2.8&#xff0c;切换到v7.2.7后&#xff0c;一切恢复正常。 在使用有道云笔…

质量指标如何发挥作用?构建质量能力是关键

本文首发于个人网站「BY林子」&#xff0c;转载请参考版权声明。 各个团队的质量管理不够规范&#xff0c;想要一套质量指标对其进行规范化的考核。 指标&#xff0c;总是受到管理者们的青睐&#xff0c;甚至有人绞尽脑汁研究出各种指标的计算方式&#xff0c;似乎利用指标来进…

windows创建不同大小的文件命令

打开命令窗口&#xff08;windowsR输入cmd打开&#xff09; 输入&#xff1a;fsutil file createnew C:\Users\Desktop\fileTran\10M.txt 10240000&#xff0c;创建10M大小的文件。 文件若存在需要先删除。

基于jsp的企业员工信息管理系统的设计与实现--【毕业论文】

文章目录 本系列校训毕设的技术铺垫文章主体层次摘要示例摘要的写法英文摘要&#xff1a; 选题目的和意义&#xff1a;与本课题相关的技术和方法综述&#xff1a;系统分析经济上的可行性技术上的可行性开发结构分析系统功能需求系统模型 系统概要设计&#xff1a;数据库设计系统…

python 异步Web框架sanic

我们继续学习Python异步编程&#xff0c;这里将介绍异步Web框架sanic&#xff0c;为什么不是tornado&#xff1f;从框架的易用性来说&#xff0c;Flask要远远比tornado简单&#xff0c;可惜flask不支持异步&#xff0c;而sanic就是类似Flask语法的异步框架。 github&#xff1…

Java并发----进程、线程、并行、并发

一、进程与线程 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至 CPU&#xff0c;数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行…

车载GPS模块有哪些部分构成?_GPS北斗模块定位原理

GPS模块硬件的常规性硬件有&#xff1a;主板或者电路板、芯片、天线等&#xff0c;这些都是必备的硬件。我们常说的GPS定位模块称为用户部分&#xff0c;它像“收音机”一样接收、解调卫星的广播C/A码信号&#xff0c;中以频率为1575.42MHz。 芯片是GPS模块里面的很重要的一部分…

IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介

系列文章目录 IDEA上面书写wordcount的Scala文件具体操作 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 目录 系列文章目录 前言 一 准备工作 1.1 安装Maven 1.1.1 Maven安装配置步骤 1.1.2 解压相关的软件包 1.1.3 Maven 配置环境变量 1.1.4 配…

解决项目加载时空白页面

背景&#xff1a;当前端项目加载时&#xff0c;遇到网络不稳定或更新项目时&#xff0c;出现长时间白屏情况&#xff0c;对用户体验非常不友好。 解决方法 CSN加速增加带宽前端页面修改 本文就第三点展开 index.html页面 &#xff08;public文件夹下&#xff09; <!DOCTYPE…

STM32F4_外部SRAM

目录 前言 1. SRAM控制原理 1.1 SRAM功能框图 1.2 SRAM读写时序 2. FSMC简介 2.1 FSMC架构 2.2 FSMC地址映射 2.3 FSMC控制SRAM时序 3. FSMC结构体 4. 库函数配置FSMC 5. 实验程序 5.1 main.c 5.2 SRAM.c 5.3 SRAM.h 前言 STM32F4自带了192K字节的SRAM&#xff1…

免费logo生成网官网分享,轻松生成专属logo

如果你正在寻找一种快速、廉价的方式来创建一个专业的商标&#xff0c;那么免费的logo生成器可能是你想要的。这些生成器可以帮助你在几分钟内创建一个标志&#xff0c;而无需花费大量的时间和金钱。 有些小伙伴会说自己没有设计的经验&#xff0c;对于logo设计也没有太多的构思…

如何能够高效实现表格中的分权限编辑功能

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 在表格类填报需求中&#xff0c;根据当前登录用户的不同等级&#xff0c;能填报的区域会…

基于SpringBoot+Vue的超市进销存系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…