int lengthOfLongestSubstring(char* s) {
int start=0,maxLen=0,index=0;
char c;
int arr[256];
int len ;
memset(arr, 0, sizeof(arr));
for(; s[index] !='\0';index++){
if(arr[s[index]]){
/* if found current letter exeists, remove letters before exeisted letter and matchming letter */
/* remove before letters */
while(s[index] != s[start]){
arr[s[start]]--;
start++;
}
/* remove the matchming latter */
arr[s[start]]--;
/* set start in the new loop */
start++;
}else{
/* none letter exeists, do nothing */
}
/* set current letter exeists */
arr[s[index]]++;
len = index - start + 1;
if(len > maxLen){
maxLen = len;
}
}
return maxLen;
}
--20190707
int lengthOfLongestSubstring(char * s){
int max = 0;
int cnt[256]={0};
int i = 0, j=0;
int len = 0;
while(s[j]){
if(cnt[s[j]]){
while(s[i] != s[j]){
cnt[s[i]]--;
i++;
len--;
}
i++;
}else{
if(++len > max){
max = len;
}
cnt[s[j]]++;
}
j++;
}
return max;
}
--20220730