AT_jsc2026_final_a Avoid Consecutives

题目描述

给定一个仅由小写英文字母组成的字符串 $S$。 你可以对 $S$ 任意次数地做如下操作: - 从 $S$ 中选择一个字符将其移除,然后将该字符插入到 $S$ 中的任意位置(包括两端)。 请判断是否可以通过若干次操作,使得没有两个相同的字符相邻。如果可以,请输出所需最少操作次数;如果无法做到,请输出 $-1$。 给定 $T$ 组测试用例,请分别给出每组的答案。

输入格式

输入通过标准输入给出,格式如下: > $T$ $\text{case}_1$ $\text{case}_2$ $\vdots$ $\text{case}_T$ 每组测试用例输入如下格式: > $S$

输出格式

输出共 $T$ 行。 第 $i$ 行输出第 $i$ 个测试用例的答案。如果可以调整使得没有相同字符相邻,则输出所需的最小操作次数,否则输出 $-1$。

说明/提示

### 样例解释 1 在第 $1$ 个测试用例中,如下操作可以用 $2$ 次操作将字符串调整为没有相同字符相邻: - 将第 $3$ 个字符 $i$ 移除,插入到两个 $w$ 之间。此时 $S$ 变为 $kiiwiw$。 - 将第 $2$ 个字符 $i$ 移除,插入末尾。此时 $S$ 变为 $kiwiwi$。 在第 $2$ 个测试用例中,无论如何操作,两个 $a$ 都会相邻。 ### 数据范围 - $1 \leq T \leq 10^5$ - $2 \leq |S| \leq 10^6$ - $S$ 由小写英文字母组成 - 所有测试用例中 $\sum |S| \leq 10^6$ - $T$ 是整数 由 ChatGPT 5 翻译