问题1685--包含1、2、3的最短子串

1685: 包含1、2、3的最短子串

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 2
[提交] [状态] [讨论版] [命题人:]

题目描述

你有一个字符串s,里面只包含1,2,3三种字符。现在要求出s的一个子串,使得:若设cnt[c]表示这个子串中字符c的数量,则这个子串中cnt[1],cnt[2],cnt[3]>=1(即这个子串1,2,3三种字符都有),并且这个子串在所有满足条件的子串中长度最小

输入

第一行一个整数t(1<=t<=20000),表示数组组数。
对于每组数据:包括一个字符串s(1<=|s|<=200000),保证s中只包含1,2,3
保证所有s的长度之和不超过200000

输出

对于每组数据,输出一个整数表示 最短的满足条件的子串的长度(如果没有满足条件的子串,输出0)

样例输入 Copy

7
123
12222133333332
112233
332211
12121212
333333
31121

样例输出 Copy

3
3
4
4
0
0
4

提示

利用双指针的思想

来源/分类