题目描述
小王正在进行游戏大闯关,有一个关卡需要输入一个密码才能通过。密码获得的条件如下:
在一个密码本中,每一页都有一个由26个小写字母组成的密码,每一页的密码不同。需要从这个密码本中寻找这样一个最长的密码,从它的末尾开始依次去掉一位得到的新密码也在密码本中存在。
请输出符合要求的密码,如果有多个符合要求的密码,返回长度最大的密码。若没有符合要求的密码,则返回空字符串。
输入描述
密码本由一个字符串数组组成,不同元素之间使用空格隔开,每一个元素代表密码本每一页的密码。
输出描述
一个字符串
解题思路
- 排序:首先将密码本中的密码按长度从长到短排序,这样我们可以优先检查较长的密码。
- 哈希集合:使用一个哈希集合来存储所有密码,方便快速查找。
- 检查密码:对于每一个密码,从它的末尾开始依次去掉一位,检查新密码是否在哈希集合中。如果所有新密码都在集合中,则返回该密码。