题意:





#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int inf = 0x3f3f3f3f;
const int N = 30;
const int M = 1e6 + 10;
int num[N],cnt;//每个字母出现的次数,不重复字母个数 
char s[M];
void add(int x){
    int ch = s[x] - 'a';
    num[ch]++;
    if(num[ch] == 1) cnt++;
}
void del(int x){
    int ch = s[x] - 'a';
    num[ch]--;
    if(num[ch] == 0) cnt--;
}
int main(){
    scanf("%s",s + 1);
    int n = strlen(s + 1);
    int ans = inf;
    int l = 1,r = 0;
    while(l <= n){
        while(cnt < 26 && r < n) add(++r);
        if(cnt == 26){
            ans = min(ans,r - l + 1);
        }
        del(l++);
    }
    printf("%d\n",ans);
    return 0;
}