给一个字符串,只包含1,2,3这三种数字,求最小的长度,可以同时包含这三个字符串
#include <bits/stdc++.h>
using namespace std;
int main()
{ int T;
cin>>T;
while(T--)
{
string s;
cin>>s;
int pos[4],i;
int ans=0x3f3f3f3f;
pos[1]=pos[2]=pos[3]=-1;
for(i=0;i<s.size();i++)
{
if(i==0)
{
pos[s[i]-'0']=0;
continue; }
int now=s[i]-'0';
pos[now]=i;
if(pos[1]!=-1 && pos[2]!=-1 && pos[3]!=-1)
{
if(now==1) ans=min(ans,i-min(pos[2],pos[3])+1);
else if(now==2) ans=min(ans,i-min(pos[1],pos[3])+1);
else if(now==3) ans=min(ans,i-min(pos[1],pos[2])+1);
} }
if(ans==0x3f3f3f3f)
cout<<0<<endl;
else cout<< ans <<endl; }
return 0;
}