华为OD机试真题 JavaScript 实现【寻找密码】【2023Q1 100分】,附详细解题思路

news/2024/11/29 20:53:54/

在这里插入图片描述

一、题目描述

小王在进行游戏大闯关,有一个关卡需要输入一个密码才能通过,密码获得的条件如下:

在一个密码本中,每一页都有一个由 26 个小写字母组成的若干位密码,从它的末尾开始依次去掉一位得到的新密码也在密码本中存在。

请输出符合要求的密码,如果由多个符合要求的密码,则返回字典序最大的密码。若没有符合要求的密码,则返回空字符串。

二、输入描述

密码本由一个字符串数组组成,不同元素之间使用空格隔开,每一个元素代表密码本每一页的密码。

三、输出描述

一个字符串。

四、解题思路

  1. 读取输入的密码本,将其存储在字符串数组 arr 中;
  2. 创建一个优先队列(PriorityQueue) queue 和一个列表(ArrayList) list;
  3. 遍历密码本的每一页密码,将密码添加到 queue 和 list 中;
  4. 初始化变量 max 为 0,用于记录当前最大密码的长度;
  5. 初始化字符串 ret 为空字符串,用于记录符合要求的密码;
  6. 对于每一页密码,依次进行以下操作:
    • 从队列中取出一个密码 str;
    • 获取密码的长度 n;
    • 初始化变量 j 为 1,用于记录截取密码的位置;
    • 从位置 1 开始,依次截取密码的前缀,判断是否在密码本中存在;
    • 如果找到了第一个不在密码本中存在的前缀,跳出循环;
    • 如果循环完成且 j 等于密码长度 n,说明当前密码满足条件;
    • 更新 max 的值为当前密码长度,并将 ret 设置为当前密码;
  7. 输出符合要求的密码 ret;

五、JavaScript算法源码

function calculate(input) {const passwords = input.split(" ");let max = 0;let ret = "";for (let i = 0; i < passwords.length; ++i) {// 取出一个密码 strconst str = passwords[i];// 获取密码的长度 nconst n = str.length;let valid = true;// 从位置 1 开始,依次截取密码的前缀,判断是否在密码本中存在for (let j = 1; j < n; ++j) {const prefix = str.substring(0, n - j);if (!passwords.includes(prefix)) {valid = false;break;}}// 更新 max 的值为当前密码长度,并将 ret 设置为当前密码if (valid && (n > max || (n === max && str > ret))) {max = n;ret = str;}}return ret;
}

六、效果展示

1、输入

n ne nez nezh nezha study java

2、输出

nezha

3、说明

从它的末尾开始依次去掉一位得到的新密码也在密码本中存在。

nezha符合要求、

在这里插入图片描述


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

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

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

在这里插入图片描述


http://www.ppmy.cn/news/363344.html

相关文章

LabVIEW中英文虚拟键盘源程序 可输入数字、字母、汉字,能在 XP系统和Win7系统下检测并切换电脑里安装的输入法

LabVIEW中英文虚拟键盘源程序 可输入数字、字母、汉字&#xff0c;能在 XP系统和Win7系统下检测并切换电脑里安装的输入法。 在使用触摸屏电脑的时候可方便的输入所需内容。 有些输入法不同版本对应的编号不一样&#xff0c;可在程序里查看、修改界面显示的输入法名称。 YID:6…

#转行JAVA# i18n文件打开乱码

修改前&#xff1a; 改idea设置 解决完&#xff1a;

XP日文输入法IME/文件打包下载

WINXP的日语输入法不正常的解决方法及相关文件下载 问题&#xff1a;如果你的WINXP的日语输入法不正常&#xff1a;安装好微软自带的输入法后,只能输入英文无法输入日文,也是只见光标在闪怎么按罗马音敲键盘就是没反映, 问题分析&#xff1a; 这时请检查你自己的X:/WINDOWS/ime…

手机打开PDF文档中文英文支持(乱码问题)解决攻略

手机打开PDF文档中文英文支持&#xff08;乱码问题&#xff09;解决攻略 参考文章&#xff1a; &#xff08;1&#xff09;手机打开PDF文档中文英文支持&#xff08;乱码问题&#xff09;解决攻略 &#xff08;2&#xff09;https://www.cnblogs.com/Seachal/p/5205502.html …

关于扫描枪输入英文乱码问题

出现原因 扫描枪是模拟手动输入的&#xff0c;当输入法为中文时扫入的字母相当于拼音 解决办法 可以将中的type改为password&#xff0c;此时不能输入中文&#xff0c;故可以使用密码框实现扫码枪中文输入法的问题 如果需要显示输入的内容可以在后插入value 以下是使用eleme…

android pdf 乱码怎么解决方案,pdf文件打开是乱码怎么办?pdf字体乱码的解决办法...

pdf文件打开是乱码怎么办&#xff1f;pdf文件相信大家都不会陌生吧&#xff0c;pdf是一种电子文件格式&#xff0c;想要打开pdf文件&#xff0c;需要下载相应的pdf工具才能打开。可是最近有用户反馈说&#xff0c;pdf文件打开是乱码&#xff0c;这是怎么回事呢&#xff1f;出现…

Java用pdfbox或icepdf转换PDF为图片时,中文乱码问题

最近在做一个将PDF文件转换成图片文件&#xff0c;然后传给前端展示的功能。刚开始时是用pdfbox&#xff0c;在本地windows环境下可以正常转换&#xff0c;图片没有任何问题。然后上了linux的测试环境&#xff0c;一样没问题。但是上了linux的生产环境之后&#xff0c;传出来的…