某网站要求用户设置的密码必须由不少于8个字符组成,并且只能有英文字母(包括大小写)、数字和@、#、$这3个特殊符合,且必须既有字母、数字和特殊符号当中至少包含2种的组合。
【输入格式】
输入第一行给出一个正整数N(≤100),随后N行,每行给出一个用户设置的密码,为不超过80个字符的非空字符串,以回车结束。
【输出格式】
对每个用户的密码,在一行中输出系统反馈信息,分以下5种:
如果密码合法,输出“密码合法”;
如果密码太短,不论合法与否,都输出“密码太短了”;
如果密码长度合法,但存在不合法字符,则输出“密码中存在非法字符”;
如果密码长度合法,但只有字母、或只有数字、或只有特殊字符,则输出“密码过于简单”。
【输入样例】
4
886
123456789
password@119
**pwdhello
【输出样例】
密码太短了
密码过于简单
密码合法
密码中存在非法字符
。。云一下 可能说的不准确 让我来写的话首先会去判断长度是否足够,然后使用正则进行判断输入是否符合格式和是否太过简单
刚开始学的话,就不推荐你用正则表达式匹配了。给你说最简单的方法
要求1:不少于8个字符
解决:自己弄
要求2:只能有指定的字符
解决:创建一个合法字符数组,遍历输入字符串,看每个字符是否在合法字符数组中
要求3:必须既有字母、数字和特殊符号当中至少包含2种的组合
解决:分别统计输入字符串中是否有字母,数字或特殊符号(和第二步可以一起),设置一个变量统计字符出现类别,累加为2则复合要求
leetcode上面的一道算法题,可以上去看看
正则表达式