method: sliding window
Python:
1 define variable left and right as the length of sliding window
2 check the next value after sliding window
3 if it is in the window, move the left of window
4 if not, update longest
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s) < 2:
return len(s)
longest, left, right = 1, 0, 1
while right < len(s):
if s[right] not in s[left: right]:
longest = max(longest, right - left + 1)
else:
left = s.index(s[right], left, right) + 1
right += 1
return longest
JS: Sliding window and set
var lengthOfLongestSubstring = function(s) {
let left = 0
let right = 0
let set = new Set();
let longest = 0;
while(right < s.length) {
if(!set.has(s[right])) {
set.add(s[right++]);
longest = Math.max(longest, right - left);
} else {
set.delete(s[left++])
}
}
return longest
};