#P15432. [蓝桥杯 2025 国 Python B] 修改密码

[蓝桥杯 2025 国 Python B] 修改密码

说明

小蓝是蓝桥云课的忠实用户,他在平台上注册了 nn 个账号,每个账号的密码都是一串仅由大小写字母、数字构成的字符串。最近,蓝桥云课为了提升账户安全性,强制要求所有用户修改密码以符合新的安全策略:密码必须至少包含一个小写字母、一个大写字母和一个数字。

小蓝不想大幅修改他常用的密码,因为他已经非常习惯了。于是,他打算进行一些简单的替换操作来修改密码,以尽可能保留原密码的结构。具体来说,每次操作,他可以将密码中的大写字母 O、小写字母 o 和数字 0 做一次互相替换,即一次操作可以是以下操作之一:

  • 将其中的一个大写字母 O 改成小写字母 o
  • 将其中的一个大写字母 O 改成数字 0
  • 将其中的一个小写字母 o 改成大写字母 O
  • 将其中的一个小写字母 o 改成数字 0
  • 将其中的一个数字 0 改成大写字母 O
  • 将其中的一个数字 0 改成小写字母 o

现在,小蓝希望你帮助他计算每个账号的密码至少需要多少次替换操作才能符合新的安全策略。如果无论如何替换都无法满足新策略,则输出 1-1,表示该密码无法通过替换操作变得有效。

输入格式

输入的第一行包含一个整数 nn,表示小蓝的账号数量。

接下来 nn 行,每行包含一个仅由大小英文字母、数字构成的字符串 SS,表示一个密码。

输出格式

输出 nn 行,每行包含一个整数,表示修改对应密码所需的最小操作次数。如果无法满足新策略,则输出 1-1

3
zxcvbn12
oooooooo
123abcABC
-1
2
0

提示

评测用例规模与约定

对于所有评测用例,1n1001 \le n \le 1008S168 \le |S| \le 16,其中 S|S| 表示字符串 SS 的长度。