AcWing 3624. 三值字符串
原题链接
简单
作者:
Cocatrice.
,
2024-11-20 12:38:53
,
所有人可见
,
阅读 1
经典双指针题型
#include <iostream>
using namespace std;
const int N = 200010;
char s[N];
int cnt[3];
int main()
{
int m;
cin >> m;
while(m--)
{
cin >> s;
int n = strlen(s);
int res = n + 1;
memset(cnt, 0, sizeof cnt);
for(int i = 0 , j = 0 ; i < n ; i ++ )
{
cnt[s[i] - '1']++;
while(cnt[s[j] - '1'] > 1)
{
cnt[s[j] - '1']--;
j++;
}
if(cnt[0] && cnt[1] && cnt[2] )
{
res = min(res,i - j + 1);
}
}
if(res == n + 1) res = 0;
cout << res << endl;
}
return 0;
}