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 翻译