华为OD机试 Java 【密码输入检测】

博客详细介绍了如何处理华为OD机试中关于密码输入检测的问题。题目要求编写程序,根据输入流中包含的退格操作,生成最终的密码字符串,并判断其是否满足特定的安全要求,如长度、大小写字母、数字和特殊字符的组合。解题思路包括使用栈处理退格操作,然后检查生成的密码是否符合安全标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

给定用户密码输入流 input,输入流中字符 ‘<’ 表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。

密码安全要求如下:
1、密码长度 ≥ 8;
2、密码至少需要包含 1 个大写字母;
3、密码至少需要包含 1 个小写字母;
4、密码至少需要包含 1 个数字;
5、密码至少需要包含 1 个字母和数字以外的非空白特殊字符;
注意空串退格后仍然为空串,且用户输入的字符串不包含 ‘<’ 字符和空白字符。

输入描述
用一行字符串表示输入的用户数据,输入的字符串中 ‘<’ 字符标识退格,用户输入的字符串不包含空白字符,例如:
ABC<c89%000<

输出描述
输出经过程序处理后,输出的实际密码字符串,并输出改密码字符串是否满足密码安全要求。两者间由 ‘,’ 分隔, 例如:
ABc89%00,true

解题思路

处理退格符号 ‘<’,使用栈遍历输入字符串,遇到字符 ‘<’ 时将栈顶元素出栈,表示退格操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值