FLY 将 OJ 注册时的密码规则设置为必须满足以下所有条件:
1. 6 \leq \text{密码长度} \leq 20,否则不合法
2. 必须同时包含三种字符:大写字母(A~Z)、数字(0~9)和小写字母(a~z)。
3. 同一个字符不可连续出现三次或三次以上(比如 "\ldots \text{aaa} \ldots"、"\ldots \text{aaaa} \ldots" 是不允许的,但是 "\ldots \text{aa} \ldots \text{a} \ldots" 是可以的)。
编写程序,输入字符串代表密码,如果已经符合条件,则返回 0;否则你需要将 s 修改成满足条件,输出将 s 修改为满足符合条件的字符串所需的最少步数。
注意:删除、插入、替换都算作一次修改。
- 删除每次可以删除任意字符
- 插入操作可以在任意位置插入任意字符
- 替换操作可以将任意位置替换为任意字符
一行,代表密码字符串
如果已符合,输出 0,否则输出改动所需的最小步数
ABABABABAAABABABABAB1
2
样例1解释:
- ABABABABAAABABABABAB1 → ABABABABAABABABABAB1
- 删除连续三个 A 中的任意一个 A,然后修改任意一个大写字母为小写字母
- 或者先将连续 A 中的一个改为小写字母,再删除任意一个大写字母
数据范围
输入字符串长度保证不超过 30
保证只会出现大写字母、小写字母、数字
时间限制 | 1 秒 |
内存限制 | 128 MB |