1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include <bits/stdc++.h> #define DBG(x) cerr << #x << " = " << x << endl
typedef long long LL; using namespace std;
int main(int argc, char **argv) { string str; while(cin >> str) { unordered_map<char, int> vis; int ans = INT_MAX; int l = 0, r = 0; ++vis[str[r]]; int num = 1; while(l <= r && r < str.size()) { if(num == 26) { ans = min(ans, r - l + 1); if(--vis[str[l++]] == 0) --num; } else { if(vis[str[++r]]++ == 0) ++num; } } if(ans == INT_MAX) cout << "No Solution" << endl; else cout << ans << endl; } return 0; }
|