一、题目描述
给定用户密码输入流input,输入流中字符 ‘<’ 表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。
密码安全要求如下:
- 密码长度>=8;
- 密码至少需要包含1个大写字母:
- 密码至少需要包含1个小写字母;
- 密码至少需要包含1个数字;
- 密码至少需要包含1个字母和数字以外的非空白特殊字符;
注意空串退格后仍然为空串,且用户输入的字符串不包含 ‘<’ 字符和空白字符。
二、输入描述
用一行字符串表示输入的用户数据,输入的字符串中 ‘<’ 字符标识退格,用户输入的字符串不包含空白字符,例如:ABC<c89%000<
三、输出描述
输出经过程序处理后,输出的实际密码字符串,并输出该密码字符串是否满足密码安全要求。两者间由 ‘,’ 分隔,例如:ABc89%00,true
四、解题思路
1、处理退格符:
使用一个栈(Stack)或可变字符串(StringBuilder)来处理输入字符串中的退格符。遍历输入字符串,对于普通字符,将其添加到栈或StringBuilder中;对于退格符’<',如果栈/字符串不为空,则移除最后一个字符。
2、验证密码规则:
需要验证密码是否满足以下条件:
- 至少