题意 小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的,当且仅当T中包含了所有的小写字母。小N希望知道所有的合法的S的子串中,长度最短是多少。 。 分析 对每个 ,我们要求最大的 ,使得 包含了所有小写字母。显然, 是单调递增的。于是我们开个桶记录一下每个字母出现了多少次,从左到右扫一遍即可。时间复杂度是 代码如下 #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 5; char s[N]; int cnt[255]; int main(){ int i, j, ...