
代码实现
cpp
const int N = 30;
string s;
int a[N];
int main()
{
cin >> s;
int n = s.size();
int l = 0, r = 0, kind = 0, ret = n;
while(r < n)
{
// 进窗口
if (islower(s[r]))
{
a[s[r] - 'a'] ++;
if (a[s[r] - 'a'] == 1) kind++;
}
while(kind == 26)
{
// 更新结果
ret = min(ret, r - l + 1);
// 出窗口
if (islower(s[l]))
{
a[s[l] - 'a'] --;
if (a[s[l] - 'a'] == 0) kind--;
}
l++;
}
r++;
}
cout << ret << endl;
}