题意理解
校验密码,密码前提一个,长度超过2;要求有三个,长度超过8,大写字母,小写字母,数字和其他字符至少三种,不得有相同的长度超过2的子串。
问题分析
用string,逐个要求分析,长度判断用size();
字符类型用数组下标逐字符统计四种类型,至少三种的判断转化为四个类型数量大于0,类型1\类型2\类型3\类型4分别为0其他不为0,共5种情况。
相同长度超过2的子串,那么长度至少为3,4及4以上的子串不用判断,因为中间必然包含了长度3的子串。长度3的子串判断方法:所有3个的子串的来源设置一个游标,从第一个字符依次向后走直到字符串尾。需要比较所以设置两个游标。两层循环比较。
其他
漏掉了4个类型都大于0情况。
链接
https://github.com/xierensong/learngit/blob/master/ncode/9/9.cpp