#include <stdio.h>
#include <string.h>
void findLongestSubstringWithoutRepeatingCharacters(char* str) {
size_t n = strlen(str);
int start = 0, end = 0;
int start_sub = 0, end_sub = 0;
int ASCII[256] = { 0 };
while (end < n) {
if (ASCII[str[end]] > 0) {
while (str[start] != str[end]) {
ASCII[str[start]] = 0;
start++;
}
start++;
}
else {
ASCII[str[end]] = end + 1;
if (end - start > end_sub - start_sub) {
start_sub = start;
end_sub = end;
}
}
end++;
}
for (int i = start_sub; i <= end_sub; i++) {
printf("%c", str[i]);
}
}
int main() {
char str[] = "xwwwqfwwxqwyq";
findLongestSubstringWithoutRepeatingCharacters(str);
return 0;
}
/*
run:
xqwy
*/