密码输入检测 (100)
- 给定一个密码,‘<’ 表示删除前一个字符,输出最终得到的密码,并判断是否满足密码安全要求:
- 密码长度>=8;
- 至少包含一个大写字母;
- 至少包含一个小写字母;
- 至少包含一个数字;
- 至少包含一个特殊字符(非字母、数字,非空)
输入描述:
一行密码字符串,不含空白字符;
输出描述:
处理后的实际密码,是否满足安全要求
示例1:
输入:
ABC<c89%000<
输出:
ABc89%00,true
说明:
多余的C和0由于退格被删除
# 根据ASCII码值 判断大小写字母、数字、特殊符号等
def is_valid(passwd):if len(passwd) < 8:return False# 大写,小写,数字,特殊符号label_list = [False for _ in range(4)]for i in passwd:val = ord(i)if val >= 65 and val <= 90:label_list[0] = Trueelif val >= 97 and val <= 122:label_list[1] = Trueelif val >= 48 and val <= 57: # 数字label_list[2] = Trueelse:label_list[3] = Truereturn all(label_list)# ABC<c89%000<s = input().strip()# 处理结果
result = []
for i in s:if i == "<":if result:result.pop()else:result.append(i)
passwd = "".join(result)# 判断是否符合安全要求
if is_valid(passwd):print(passwd + "," + "true")
else:print(passwd + "," + "false")