#7276. 1354B. B. Ternary String
0
1354B. B. Ternary String
1354B. B. Ternary String
CF1354B. Ternary String
时限: 2 秒 | 内存: 256 MB | 输入: 标准输入 | 输出: 标准输出
给定一个字符串 $s$,其中每个字符都是 $1$、$2$ 或 $3$。你需要选择 $s$ 的最短连续子串,使得该子串至少包含这三种字符各一次。
字符串 $s$ 的连续子串是指可以通过从 $s$ 的开头删除若干(可能为零)字符和从结尾删除若干(可能为零)字符得到的字符串。
输入格式
第一行包含一个整数 $t$($1 \le t \le 20000$),表示测试用例的数量。
每个测试用例包含一行字符串 $s$($1 \le |s| \le 200000$)。保证 $s$ 的每个字符都是 $1$、$2$ 或 $3$。
所有测试用例中字符串的总长度不超过 $200000$。
输出格式
对于每个测试用例,输出一个整数,表示包含所有三种字符至少一次的最短连续子串的长度。如果不存在这样的子串,则输出 $0$。
样例输入 1
7 123 12222133333332 112233 332211 12121212 333333 31121
样例输出 1
3 3 4 4 0 0 4
提示
考虑如下示例测试:
在第一个测试用例中,可以使用子串 123。
在第二个测试用例中,可以使用子串 213。
在第三个测试用例中,可以使用子串 1223。
在第四个测试用例中,可以使用子串 3221。
在第五个测试用例中,$s$ 中没有字符 3。
在第六个测试用例中,$s$ 中没有字符 1。
在第七个测试用例中,可以使用子串 3112。