51Nod1127
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 const int inf = 0x3f3f3f3f;
5 int vis[26];
6 int main() {
7 string s; cin >> s;
8 int l = 0, r = 0, sum = 0, ans = inf;
9 while (l <= r && r < s.size()) {
10 if (vis[s[r]-'A'] == false) sum++;
11 vis[s[r]-'A']++;
12 while (sum == 26) {
13 ans = min(ans,r-l+1);
14 if (vis[s[l]-'A'] == 1) sum--;
15 vis[s[l]-'A']--;
16 l++;
17 }
18 r++;
19 }
20 if (ans == inf) cout << "No Solution" << endl;
21 else cout << ans << endl;
22 return 0;
23 }