int lengthOfLongestSubstring(char * s) {
int len = strlen(s);
if (len <= 1) {
return len;
}
int hash[1024] = {0};
int left = 0;
int right = 0;
int max = 0;
while (s[right] != '\0') {
if (hash[s[right]] && left < hash[s[right]]) { //重复了,需要更新left
left = hash[s[right]];
}
hash[s[right]] = right + 1;
max = (right - left + 1) > max ? (right - left + 1) : max;
right++;
}
return max;
}
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
利用滑动窗口和哈希表。