思路:
使用尺取法,简单来说就是先固定左边,右边逐次遍历,如果满足条件了,再将左边缩短,以此来寻找最短的满足条件的字符串。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stack>
#include <queue>
#include <cmath>
#define ll long long
#define pi 3.1415927
#define inf 0x3f3f3f3f
#define mod 1000000007
using namespace std;
string s;
int cnt[30];
bool cheak()
{
    for(int i=0;i<26;++i)
        if(cnt[i]==0)
            return false;
    return true;
}
int main ()
{
    int T,n,m,i,t,j,k,p;
    cin>>s;
    j=s.length();
    k=0;
    int mins=inf;
    for(i=0;i<j;++i)
    {
        cnt[s[i]-'a']++;
        while(cheak())
        {
            mins=min(mins,i-k);
            cnt[s[k++]-'a']--;
        }
    }
    cout<<mins+1<<endl;

    return 0;
}