#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { char * s = "abbc"; int hash[256]; for (int i = 0; i < 256; i++) hash[i] = -1; int cur_start = 0; int max_start = 0; int cur_size = 1; int max_size = 1; hash[s[0]] = 0; for (int i = 1; i < strlen(s); i++) { if (hash[s[i]] == -1) { cur_size++; hash[s[i]] = i; if (cur_size > max_size) { max_size = cur_size; max_start = cur_start; } } else { cur_start = hash[s[i]] + 1; cur_size = i - hash[s[i]]; hash[s[i]] = i; } } cout << "max_start: " << max_start << endl; cout << "max_size: " << max_size << endl; printf("%.*s/n", max_size, s + max_start); system("pause"); return 0; }