华为OD机试真题(JavaScript),挑选字符串(100%通过+复盘思路)

news2024/10/6 20:36:29

在这里插入图片描述

一、题目描述

给定a-z,26个英文字母小写字符串组成的字符串A和B,其中A可能存在重复字母,B不会存在重复字母,现从字符串A中按规则挑选一些字母可以组成字符串B挑选规则如下:

  1. 同一个位置的字母只能挑选一次;
  2. 被挑选字母的相对先后顺序不能被改变

求最多可以同时从A中挑选多少组能组成B的字符串。

二、输入描述

输入为2行, 第一行输入字符串a,第二行输入字符串b,行首行尾没有多余空格。

三、输出描述

输出一行,包含一个数字表示最多可以同时从a中挑选多少组能组成b的字符串,行末没有多余空格

四、解题思路

  1. 读取输入的字符串A和B;
  2. 使用HashMap bMap 存储字符串B中每个字符的位置;
  3. 遍历字符串B,将每个字符及其位置存储在bMap中;
  4. 初始化大小为B长度的整型数组aArr,用于记录字符串A中每个字符出现的次数;
  5. 遍历字符串A,对于每个字符:
    • 如果字符存在于bMap中,即需要挑选的字符:
    • 获取该字符在字符串B中的位置indexInB;
    • 如果该字符是字符串B的第一个字符,或者其前一个字符的计数小于当前字符的次数:
    • 将当前字符在aArr中对应位置的计数加1;
  6. 输出aArr数组最后一个位置的计数,即最多可以同时从A中挑选多少组能组成B的字符串;

五、JavaScript算法源码

function getMaxSelections(A, B) {
    const bMap = new Map();
    for (let i = 0; i < B.length; i++) {
        bMap.set(B[i], i);
    }

    const aArr = new Array(B.length).fill(0);
    for (let i = 0; i < A.length; i++) {
        if (bMap.has(A[i])) {
            const indexInB = bMap.get(A[i]);
            if (indexInB === 0 || aArr[indexInB] < aArr[indexInB - 1]) {
                aArr[indexInB]++;
            }
        }
    }

    return aArr[aArr.length - 1];
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

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

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

JS reduce方法对后台数据的处理案例(秒解决)

目录 一、前言 二、案例1 三、案例二 四、小结 一、前言 在我们项目开发阶段&#xff0c;当后端传回来的数据不太理想或者不好直接使用的话&#xff0c;那么此时我们就必须对数据进行处理&#xff0c;这次我就遇到了一种情况&#xff0c;当后端返回如下格式的数据&#xff…

Rust每日一练(Leetday0024) 爬楼梯、简化路径、编辑距离

目录 70. 爬楼梯 Climbing Stairs &#x1f31f; 71. 简化路径 Simplify Path &#x1f31f;&#x1f31f; 72. 编辑距离 Edit Distance &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专…

dubbo源码阅读之-java spi, dubbo spi 和 Spring spi 到底有啥区别

java spi, dubbo spi 和 Spring spi 到底有啥区别 SPIJava SPI案例优缺点 Spring SPIDubbo SPI概述案例源码分析 自己实现一个SPI SPI SPI 全称为 Service Provider Interface&#xff0c;是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中&#xff0c;并由…

北京通信展的精华内容,都在这里!(中篇)

█ 中国移动 中国第一大运营商&#xff1a; 中国移动展出的内容非常非常多&#xff0c;既有应用&#xff0c;也有技术干货&#xff1a; 通感一体化&#xff1a; 6G&#xff1a; 猜猜这是什么&#xff1a; 揭晓答案&#xff1a; 1:2的卫星单元模型&#xff1a; RIS智能超表面&am…

HNU人工智能实验四-基于YOLOV3-DarkNet50的篮球检测模型

实验四&#xff1a;深度学习算法及应用-基于YOLOV3-DarkNet50的篮球检测模型 项目文档工程&#xff1a;https://github.com/mindspore-ai/mindspore-21-days-tutorials/tree/main/ 前言 这个实验要求做一个深度学习项目&#xff0c;做头歌的或者自己在华为云找一个都行&…

华为OD机试真题 Java 实现【最长回文子串】【牛客练习题】

一、题目描述 给定一个仅包含小写字母的字符串&#xff0c;求它的最长回文子串的长度。 所谓回文串&#xff0c;指左右对称的字符串。 所谓子串&#xff0c;指一个字符串删掉其部分前缀和后缀&#xff08;也可以不删&#xff09;的字符串 数据范围&#xff1a;字符串长度1≤s…

华为OD机试真题 JavaScript 实现【最长回文子串】【牛客练习题】

一、题目描述 给定一个仅包含小写字母的字符串&#xff0c;求它的最长回文子串的长度。 所谓回文串&#xff0c;指左右对称的字符串。 所谓子串&#xff0c;指一个字符串删掉其部分前缀和后缀&#xff08;也可以不删&#xff09;的字符串 数据范围&#xff1a;字符串长度1≤s…

锤子眼里全是钉?谈如何对现有系统进行微服务改造

1 什么是微服务架构&#xff1f; 微服务架构&#xff0c;主要是一种思想&#xff0c;并非具体的技术、框架、语言等。核心在于将现有系统拆分为功能明确&#xff0c;内聚性强&#xff0c;职责单一的微小部分&#xff0c;以服务形式对外提供&#xff0c;从而将原来的复杂大系统…

SpringBoot 通过@Profile注解配置多环境

参考资料 Springboot中的Profile注解 目录 一. 使用场景二. 前期准备三. Profile注解作用于类上3.1 配置类3.2 效果 四. Profile注解作用于方法上4.1 定义一个生产环境的注解4.2 配置类4.3 效果 一. 使用场景 在Spring中&#xff0c;可以使用配置文件的方式来指定不同环境下所…

让AI写今年高考作文,满分60你给AI打多少分呢?

随着高考的落幕&#xff0c;各地高考作文已成为我们讨论的话题。 下面是2023年全国甲卷作文题目 我们就让AI根据要求&#xff0c;写上两篇作文。作文标题也是AI起的 一 、① 标题&#xff1a;与时间赛跑&#xff0c;不为时间所困 ​ 时间&#xff0c;这位无情的审判长&#…

知识点滴 - Tumble test和Drop test

翻滚测试(Tumble test)和跌落测试(Drop test)是十分重要的方法&#xff0c;用于评估产品的维持功能的能力&#xff0c;针对的是当产品在终端用户手中的整个生命周期中经历许多碰撞和刮擦的情况。 跌落测试的随机性较强&#xff0c;而跌落测试可以控制跌落方向、撞击点等。 翻滚…

将一个正整数分解质因数(Java)

题目&#xff1a;将一个正整数分解质因数。例如&#xff1a;输入1023,打印出10233*11*31。 目录 1、解题思路 2、程序代码 3、程序输出 1、解题思路 从最小的质数开始&#xff0c;不断地将输入的正整数进行分解&#xff0c;直到无法再分解为止。具体实现方法为&#xff1a;从…

Flutter调用Rust代码操作指南

在之前的利用Rust与Flutter开发一款小工具文章中&#xff0c;我们使用Rust代码实现了一个简单的WebSocket发送功能。也在Rust库交叉编译以及在Android与iOS使用这篇中介绍了Rust库的打包以及双端的使用。 今天我们继续用之前WebSocket的代码举例&#xff0c;来介绍如何在Flutt…

chatgpt赋能python:Python怎么取出换行的数据?

Python怎么取出换行的数据&#xff1f; 在数据分析和处理中&#xff0c;我们常常需要从文件中读取数据&#xff0c;特别是当数据量很大时更是如此。在Python中&#xff0c;读取文本文件中的数据很简单&#xff0c;但是有时候读取的文本文件中可能含有换行符&#xff0c;这可能…

5.DIY可视化-拖拽设计1天搞定主流小程序-公告管理

1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理 公告管理-本教程均在第一节中项目启动下操作 1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理2.创建数据表执行: php think diygw:tableandapi oneHdp 3. 复制幻灯片界面进行编辑4.修改后台API5.富文本添加6.验证 :访问url : …

linux下动态链接过程

序 总是在工作中会遇到符号表&#xff0c;链接等字眼&#xff0c;之前看过《程序员自我修养》这本书&#xff0c;但是基本上都忘记了&#xff0c;这几天再刷一遍&#xff0c;顺便记录一下&#xff0c;加深记忆。 本文会完整的描述程序运行的动态加载及运行的整个流程&#xff…

大学生心理健康APP的设计与实现

摘 要&#xff1a;大学生群体本该是象牙塔中的学习者&#xff0c;是祖国未来的支柱&#xff0c;是民族复兴的期望所在&#xff0c;但是近几年大学生心理健康问题日益严峻&#xff0c;例如情感问题&#xff0c;原生家庭的问题&#xff0c;学业问题&#xff0c;与同学相处所带来…

【ps】photoshop 入门

文章目录 Adobe Photoshop 安装快捷键照片裁剪保存/导出图片复制图层新建图层及颜色填充人物轮廓调整、增高颅顶人物瘦脸、缩小鼻翼、丰唇、放大眼睛人物祛痘/祛斑背景杂质去除图像提亮调色工具 Adobe Photoshop 安装 参照 【Adobe Photoshop 2023 v24.3.0【附安装破解教程】中…

串口通讯,三种数据传输方式介绍

前言 &#xff08;1&#xff09;备考微机原理&#xff0c;这里就把这个知识点分享给和我一样不认真上课的同学们。 &#xff08;2&#xff09;虽然在我的STM32串口通讯的教程里面已经有描述这部分的内容了。但是担心有些人只是想单纯的了解这个知识点&#xff0c;所以我就又单独…

【工具】putty下载、安装、使用和常用设置教程

一&#xff0c;Putty简介 Putty是一个远程登录工具&#xff0c;适用于 Windows 和 Unix 平台的Telnet、SSH和 RLOGIN客户端。 跨平台支持&#xff1a;PuTTY 可以在多个操作系统上运行&#xff0c;包括 Windows、Linux、Mac 等&#xff0c;使得在不同的平台上使用相同的工具成为…