C. They Are Everywhere
链接
尺取
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n ;
string a ;
cin>>n;
cin>>a;
map<char , int > p;
int si = 0 ;
for(int i = 0 ; i < n ; i ++ )
{
if(!p[a[i]]) si ++ ;
p[a[i]] ++ ;
}
int l = 0 ,r = 0 , ans = 1e9 , k = 0 ;
map<char , int> pp ;
while(r < n )
{
while(r < n && k < si)
{
if(pp[a[r]] == 0 ) k ++ ;
pp[a[r]] ++ ;
r ++ ;
}
while(pp[a[l]] > 1 )
{
pp[a[l]] -- ;
l ++ ;
}
if(k == si )
{
ans = min(ans , r - l ) ;
pp[a[l ++]] -- ,k -- ;
}
}
cout<<ans<<endl;
}