开始: 2023-10-18 14:00:00

1018模拟周赛09(tg)

结束: 2023-10-18 23:00:00
当前  2025-01-24 17:41:06  类型: IOI  状态: 已经结束 

P2. 密码检查
描述

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
提交