ACWing.3624三值字符串
作者:
米彩
,
2024-03-04 23:32:27
,
所有人可见
,
阅读 35
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int a;
cin>>a;
while(a--)
{
string b;
cin>>b;
int res=0;
int grn=0,cr=0,mc=0;
int temp=0;
for(int i=0;i<b.size();i++)
{
if(b[i]=='1')
grn++;
else if(b[i]=='2')
cr++;
else if(b[i]=='3')
mc++;
if(grn>0&&mc>0&&cr>0)
{
temp=i;
break;
}
}
if(grn>0&&mc>0&&cr>0)
{
int res=temp+1;
for(int i=0,j=temp;j<b.size();j++)
{
if(j!=temp)
{
if(b[j]=='1')
grn++;
else if(b[j]=='2')
cr++;
else if(b[j]=='3')
mc++;
}
while(grn>0&&mc>0&&cr>0)
{
if(i!=0)
res=min(res,j-i+1);
if(b[i]=='1')
grn--;
else if(b[i]=='2')
cr--;
else if(b[i]=='3')
mc--;
i++;
}
}
cout<<res<<endl;
}
else
{
cout<<"0"<<endl;
}
}
}