题目传送门
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1000000+100;
char ch[maxn];
int cnt[30];
bool check(){
for(int i=0;i<26;i++) if(!cnt[i]) return false;
return true;
}
int main(){
scanf("%s",ch);
int len=strlen(ch);
int l=0,r=0;
int Min=len;
while(r<len){
while(!check() && r<len) cnt[ch[r++]-'a']++;
while(check()) cnt[ch[l++]-'a']--;
if(r<=len) Min=min(Min,r-l+1);
}
printf("%d\n",Min);
}