#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。