密码输入检测 (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] = True
elif val >= 97 and val <= 122:
label_list[1] = True
elif val >= 48 and val <= 57: # 数字
label_list[2] = True
else:
label_list[3] = True
return 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")