题目描述:密码输入检测(本题分值100)
给定用户密码输入流input,输入流中字符’<'表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。
密码安全要求如下:
1.密码长度>=8;
2.密码至少需要包含1个大写字母;
3.密码至少需要包含1个小写字母;
4.密码至少需要包含1个数字;
5.密码至少需要包含1个字母和数字以外的非空白特殊字符
注意空串退格后仍然为空串,且用户输入的字符串不包含‘<’字符和空白字符。
输入描述
用一行字符串表示输入的用户数据,输入的字符串中‘<’字符标识退格,用户输入的字符串不包含空白字符,例如:ABC<c89%000<
输出描述
输出经过程序处理后,输出的实际密码字符串,并输出改密码字符串是否满足密码安全要求。两者间由‘,’分隔, 例如:ABc89%00,true
示例1
输入
ABC<c89%000<
输出
ABc89%00,true
说明
解释:多余的C和0由于退格被去除,最终用户输入的密码为ABc89%00,且满足密码安全要求,输出true
解题思路
-
始化了五个变量:
result
(一个空字符串用于存储处理后的输入),is_big
,is_small
,is_num
和is_spec
(四个布尔变量,用于检查处理后的字符串是否包含大写字母、小写字母、数字和特殊字符)。 -
接下来,代码遍历输入的字符串中的每一个字符。对于每一个字符,代码首先检查它是否是’<'。如果是,那么代码将删除
result
字符串的最后一个字符(如果存在的话)。否则,代码将执行以下操作:- 将字符添加到
result
字符串中。 - 如果字符是数字,并且
is_num
当前为False,那么将is_num
设置为True。 - 如果字符是小写字母,并且
is_small
当前为False,那么将is_small
- 将字符添加到