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

news/2024/10/25 7:34:07/

在这里插入图片描述

一、题目描述

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

在一个密码本中,每一页都有一个由 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;

五、Java算法源码

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr = sc.nextLine().split(" ");Queue<String> queue = new PriorityQueue<String>();List<String> list = new ArrayList<String>();for (int i = 0; i < arr.length; ++i) {list.add(arr[i]);queue.add(arr[i]);}int max = 0;String ret = "";for (int i = 0; i < arr.length; ++i) {String str = queue.peek();queue.poll();int n = str.length();int j = 1;for (j = 1; j < n; ++j) {if (!list.contains(str.substring(0, j))) {break;}}if (max <= n && j == n) {max = n ;ret = str;}}System.out.println(ret);
}

六、效果展示

1、输入

n ne nez nezh nezha study java

2、输出

nezha

3、说明

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

nezha符合要求、

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

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

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

在这里插入图片描述


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

相关文章

【华为OD机试真题2023B卷 JAVAJS】TLV解码

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 TLV解码 知识点数组字符串 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value…

【事件驱动微服务架构】专家组:事件驱动的大规模架构

赖斯&#xff1a;欢迎来到我们关于架构的专题小组&#xff0c;你们一直想知道轨道。该专题小组称为事件驱动的大规模架构。当您思考事件驱动架构时&#xff0c;您会想到什么&#xff1f;这是规模、性能和灵活性的好处吗&#xff1f;也许你想到了一个你可能经历过的特殊问题。也…

挂耳式耳机什么牌子的好,五款适合运动佩戴的耳机清单

音乐对于运动来说&#xff0c;一直是一个密不可分的一对&#xff0c;在音乐的陪伴下&#xff0c;运动才不会变得那么枯燥乏味。反之&#xff0c;在运动的陪伴下&#xff0c;音乐显得更加的美妙。而音质是耳机最为核心的部分&#xff0c;在现如今眼花缭乱的耳机市场中&#xff0…

耳挂式蓝牙耳机原理_一种耳挂式蓝牙耳机的制作方法

本实用新型涉及蓝牙耳机技术领域&#xff0c;特别涉及一种耳挂式蓝牙耳机。 背景技术&#xff1a; 随着蓝牙耳机技术的使用普及&#xff0c;蓝牙耳机在智能设备以及智能通信中得到了广泛地应用。自蓝牙耳机出现以来&#xff0c;蓝牙耳机适用于各种场合&#xff0c;蓝牙耳机在佩…

运动耳机戴不稳怎么办、五款佩戴最稳固的运动耳机推荐

对于很多喜欢运动的朋友来说&#xff0c;音乐的陪伴既提升了健身过程中的氛围&#xff0c;也带来的愉悦的心情&#xff0c;让运动随着音乐的节拍达到健身效果。如何为自己选对运动耳机&#xff0c;这个就显得尤为关键了&#xff0c;一款好的运动耳机不但要有优秀的音质&#xf…

挂耳式耳机品牌排行榜,几款适合运动佩戴的耳机

耳机无疑是我们每天日常的灵魂伴侣&#xff0c;无论是在日常的通勤路上&#xff0c;还是在运动的全过程&#xff0c;我们通常都会佩戴着耳机&#xff0c;因为耳机能够带给我足够的快乐&#xff0c;在户外运动的适合佩戴更能够激发我们的运动潜能&#xff0c;但这也意味着一个问…

挂耳式蓝牙耳机哪家的好用?挂耳式蓝牙骨传导耳机推荐

如今主流的耳机基本上都是入耳式的&#xff0c;但是佩戴久了会导致听力受损&#xff0c;耳部不适&#xff0c;这是无法解决的问题&#xff0c;但是骨传导的佩戴方式应该算是最优解&#xff0c;佩戴上减少了耳蜗与耳机的摩擦&#xff0c;因而耳朵也不会感到痒和累&#xff0c;这…

气传导耳机哪个好?2023气传导耳机排行榜推荐

​很多人还不知道气传导耳机是什么&#xff0c;气传导耳机最大的特点就是全开放&#xff0c;不会阻塞耳道&#xff0c;只需把耳机挂在耳朵上&#xff0c;就能听到声音了&#xff0c;而且在大电话的同时还能保持外界环境声音&#xff0c;提高安全性。今天就来说说市面上比较热门…