CF1821C Tear It Apart
题目描述
给定一个由小写拉丁字母组成的字符串 $s$。
每次操作,你可以选择字符串中的若干(至少一个)位置,这些位置之间不能相邻。然后你删除这些位置上的字母,剩下的部分按原顺序拼接。
请问,最少需要多少次操作,才能使字符串 $s$ 中所有字母都相同?
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例仅一行,包含一个由小写拉丁字母组成的字符串 $s$,其长度为 $1$ 到 $2 \cdot 10^5$。
所有测试用例中字符串的总长度不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示将给定字符串 $s$ 变为所有字母相同所需的最少操作次数。
说明/提示
在第一个测试用例中,你可以选择第 $2, 4, 6$ 个位置,删除对应的字母 'b'、'c' 和 'b'。
在第三个测试用例中,字符串中的字母已经全部相同,因此不需要进行任何操作。
在第四个测试用例中,一种可能的两步操作方案如下:首先选择第 $1, 4, 6$ 个位置,字符串变为 "bce"。然后选择第 $1$ 和 $3$ 个位置,字符串变为 "c"。此时所有字母都相同,因为只剩下一个字母。
由 ChatGPT 4.1 翻译