def find_longest_password(passwords):
# 将密码本中的密码存储到集合中
password_set = set(passwords)
candidates = []
# 遍历每个密码
for password in sorted(passwords, key=len, reverse=True):
# 检查当前密码是否满足条件
for i in range(1, len(password) + 1):
if password[:-i] not in password_set:
print(password[:-i])
break
else:
# 如果去掉末尾的任意一位字符后仍然在密码集中,添加到候选列表中
candidates.append(password)
print(f"else:{password}")
break
# 如果没有找到满足条件的密码,返回空字符串
if not candidates:
return ""
# 如果有多个满足条件的密码,返回字典序最大的那个
# 首先按长度降序排序,然后按字典序升序排序
candidates.sort(key=lambda x: (-len(x), x))
return candidates[0]
# 输入处理
passwords = input("请输入密码本,用空格分隔每个密码: ").split()
# 调用函数并打印结果
print(find_longest_password(passwords))