华为OD机试真题B卷 Java 实现【寻找关键钥匙】,附详细解题思路

一、题目描述

小强正在参加《密室逃生》游戏,当前关卡要求找到符合给定 密码K(升序的不重复小写字母组成)的箱子,并给出箱子编号,箱子编号为1~N。

每个箱子中都有一个字符串s,字符串由大写字母,小写字母,数字,标点符号,空格组成,需要在这些字符串中找出所有的字母,忽略大小写后排列出对应的密码串,并返回匹配密码的箱子序号

提示:

满足条件的箱子不超过1个。

二、输入描述

第一行为key的字符串,第二行为箱子boxes,为数组样式,以空格分隔,箱子N数量满足1<=N<=10000,s长度满足 0<=s.length<=50,密码为仅包含小写字母的升序字符串,且不存在重复字母,密码K长度K.length,1<=K.length<=26。

三、输出描述

返回对应箱子编号。

如不存在符合要求的密码箱,则返回-1

四、补充说明

箱子中字符拼出的字符串与密码的匹配忽略大小写,且要求与密码完全匹配,如密码abc匹配aBc,但是密码abc不匹配abcd

五、解题思路

  1. 首先读取输入的密码字符串 line1 和箱子数组 boxArr;
  2. 初始化变量 result 为 -1,用于记录匹配密码的箱子序号,默认为不存在符合要求的密码箱;
  3. 使用循环遍历每个箱子:
    • 初始化一个字符串构建器 builder 用于存储箱子中的字母;
    • 遍历箱子中的每个字符:
      • 将当前字符转换为小写字母;
      • 如果转换后的字符是小写字母,则将其添加到字符串构建器中;
    • 将字符串构建器转换为字符数组,并对字符数组进行排序;
    • 将排序后的字符数组转换为字符串 temp;
    • 如果 temp 与密码字符串 line1 相等,则说明找到了符合要求的密码箱,将 result 设置为当前箱子的序号,然后跳出循环;
  4. 输出 result,即为对应的箱子编号;
  5. 如果循环结束后仍然没有找到符合要求的密码箱,则输出 -1 表示不存在;

六、Java算法源码

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String line1 = sc.nextLine();String line2 = sc.nextLine();String[] boxArr = line2.split(" ");int result = -1;for (int i = 0; i < boxArr.length; i++) {StringBuilder builder = new StringBuilder();String box = boxArr[i];for (int j = 0; j < box.length(); j++) {char current = box.charAt(j);char lower = Character.toLowerCase(current);if (lower >= 'a' && lower <= 'z') {builder.append(lower);}}char[] arr = builder.toString().toCharArray();Arrays.sort(arr);String temp = String.valueOf(arr);if (temp.equals(line1)) {result = i + 1;break;}}System.out.println(result);
}

七、效果展示

1、输入

abq
nezha study A2q4b

2、输出

3

3、说明

第3个箱子中的abq,符合密码abq。

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

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

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

相关文章

LC-1130. 叶值的最小代价生成树(贪心、区间DP、单调栈)

1130. 叶值的最小代价生成树 难度中等272 给你一个正整数数组 arr&#xff0c;考虑所有满足以下条件的二叉树&#xff1a; 每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。每个非叶节点的值等于其左子树和右子树中叶节点的最大…

人工智能粒子群优化三大算法

粒子群优化是以邻域原理&#xff08;neighborhood principle&#xff09;为基础进行操作的&#xff0c;该原理来源于社会网络结构研究中。驱动粒子群优化的特性是社会交互作用。群中的个体&#xff08;粒子&#xff09;相互学习&#xff0c;而且基于获得的知识移动到更相似于它…

Golang每日一练(leetDay0082) 用队列实现栈、用栈实现队列

目录 225. 用队列实现栈 Implement Stack Using Queues &#x1f31f; 232. 用栈实现队列 Implement Queue Using Stacks &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 …

PS07海报截剪和切片(标尺使用),PS08图框工具(剪贴蒙版),PS09吸管工具组(颜色取样)

PS07海报截剪和切片&#xff08;标尺使用&#xff09; PS08图框工具&#xff08;剪贴蒙版&#xff09;PS09吸管工具组&#xff08;颜色取样&#xff09;

ps制作太极图

最终效果&#xff1a; 操作步骤&#xff1a; (1)、 新建文件-800*800px&#xff0c;打开标尺&#xff0c;新建参考线、得到中心点。 ctrlr 打开标尺&#xff0c; 学会 拉 标尺线&#xff0c; 拉出两条标尺线&#xff0c;让其水平、垂直相交。 (2)、 椭圆选框-以中心点绘制正圆…

用ps制作太极图

操作步骤&#xff1a; (1)、 新建文件-800*800px&#xff0c;打开标尺&#xff0c;新建参考线、得到中心点。 ctrlr 打开标尺&#xff0c; 学会 拉 标尺线&#xff0c; 拉出两条标尺线&#xff0c;让其水平、垂直相交。 (2)、 椭圆选框-以中心点绘制正圆&#xff08;按AltShi…

ps中怎样测量标尺线之间的距离及怎样切换距离单位

2019独角兽企业重金招聘Python工程师标准>>> 首先说一下&#xff0c;我用ps还不是很熟练&#xff0c;所以都是初级的问题&#xff0c;希望各位ps大神莫喷~~首先说一下怎么找到标尺呢&#xff1f;打开ps后&#xff0c;最上面有一个视图&#xff0c;点击后将标尺选项前…

前端ps基本操作

在还原设计时,我们需要使用 photoshop打开sd格式的设计,作为的工程师,我们不要太多的ps技巧,只需要了 一些简单的基本操作即可 1、alt 滚轮缩放放图片 2、空格鼠标左健拖动图片 3、shiftm切换选取工具,使用鼠标左键选择,ctrld可以取消选取 4、F8查看信息,可以查看选取内容的…

2.ps基本操作

提示&#xff1a;文章写完后&#xff0c;ps基本操作。 1、ps安装包 阿里云盘分享https://www.aliyundrive.com/s/XWxksTdanpW获取码&#xff1a;mp74 ps安装包 https://www.aliyundrive.com/s/XWxksTdanpW 提取码: mp74 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打…

photoshop标尺工具_RulersGuides.js – Web上的Photoshop样式标尺和指南

关于Photoshop的最好的事情之一是其易于使用的指导线 &#xff0c;可以从标尺上拉出。 这些指南可以使放置物品和正确放置天平时的设计过程变得更加容易。 令我们非常高兴的是&#xff0c; 马克罗利奇 &#xff08; Mark Rolich &#xff09;实现了此特殊功能&#xff0c;以便…

chatgpt赋能python:Python中输入的全面介绍

Python中输入的全面介绍 在Python编程语言中&#xff0c;输入是指程序要求用户将内容输入到程序中进行处理。输入函数为input()&#xff0c;它允许用户直接在程序中输入数据。本文将全面介绍Python中输入的用法&#xff0c;包括如何使用input()函数、如何进行输入的类型转换以…

软件测试总结

软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论&#xff0c;主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下&#xff0c;对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要…

pr片头、滚动与开放式字幕制作

pr字幕与滚动字幕制作&#xff1a; 片头字幕&#xff1a;点击文字工具&#xff08;Ctrl鼠标左键 打点&#xff09; 开放式字幕&#xff1a;新建序列-字幕 滚动字幕&#xff1a;旧版标题-滚动选项

ckeditor动态显示隐藏工具栏指定的按钮

客户说工具栏太复杂了&#xff0c;但是有时候又能用到&#xff0c;所以给了个需求&#xff0c;做一个按钮能实现显示或隐藏按钮 好吧&#xff0c;客户是上帝&#xff0c;开搞 思路&#xff1a;ckeditor添加一个自定义按钮&#xff0c;里面方法实现display&#xff1a;none样式…

金蝶服务器如何显示在任务栏,报表窗口看不见工具栏界面怎么办?

有的用户在打开金蝶KIS记账王会计报表后&#xff0c;竟然发现看不到保存、预览、打印等工具栏界面&#xff0c;这些工具与应用账簿报表数据息息相关&#xff0c;没有这些工具的话将大大想想使用效率。但是请放心&#xff0c;工具栏界面消失不是无法解决的棘手问题&#xff0c;下…

Linux(Ubuntu)菜单栏(工具栏)隐藏了,怎么显示出来

最近有捡起了LInux&#xff0c;换了新版本&#xff0c;有好多设置有点儿生疏 在使用的过程中&#xff0c;对一些比较典型的问题或者方法&#xff0c;进行一个总结&#xff0c;方便后面查看&#xff0c;也给各位道友一个参考。 其实这个问题也比较尴尬&#xff0c;如下图&…

计算机桌面工具栏,win7电脑计算机界面菜单工具栏不见了怎么办?

因为在咱们的windows系统中&#xff0c;具有很多的工具栏配置&#xff0c;咱们很多界面的窗口上方都有这样的一个工具栏&#xff0c;大家不妨随意的在自己的win7电脑中找到一个文件夹&#xff0c;之后咱们双击打开&#xff0c;在打开的文件夹窗口上方&#xff0c;咱们就可以看到…

word2007工具栏隐藏了怎样能一直显示?

1、首先在电脑中打开word文档&#xff0c;可以发现“功能区”被自动隐藏了&#xff0c;如下图所示。 2、这时需要点击左上角的开始选项卡&#xff0c;如下图所示。 3、然后在打开的开始菜单中&#xff0c;A下方的横杠&#xff0c;选择单击取消勾选“折叠功能区”。 4、这样“功…

easyUI dataGrid 隐藏分页工具栏 隐藏表头

一.方法1&#xff08;不推荐&#xff09; 适应以下需求&#xff1a; 1.当表格没有数据时&#xff0c;把datagrid隐藏;有数据的时候显示 2.表格不分页&#xff0c;无需显示分页栏 3.datagrid的高度由内容撑开&#xff08;固定高度&#xff0c;无数据时显示空白也可&#xff…