#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <stdbool.h>
int lengthOfLongestSubstring(char* s) {
bool isChecked[256];
int index_start = 0;
int index_end = 0;
int max_cnt = 0;
int current_cnt = 0;
memset(isChecked, false, 256);
char target_end = s[index_end];
while (target_end != '\0')
{
if (!isChecked[target_end])
{
isChecked[target_end] = true;
current_cnt++;
index_end++;
target_end = s[index_end];
}
else
{
if (current_cnt > max_cnt)
{
max_cnt = current_cnt;
}
char target_start = s[index_start];
while (target_start != target_end)
{
index_start++;
isChecked[target_start] = false;
current_cnt--;
target_start = s[index_start];
}
index_start++;
index_end++;
target_end = s[index_end];
}
}
if (current_cnt > max_cnt)
{
max_cnt = current_cnt;
}
return max_cnt;
}
int main(void)
{
char* p_str = "abbaaaaaabcdaabcdeaa";
printf("hello,world\r\n");
printf("%s,%d\r\n", p_str, lengthOfLongestSubstring(p_str));
system("pause");
}
https://leetcode.com/submissions/detail/80152054/