Longest Substring Without Repeating Characters
Problem statement
Given a string s, find the length of the longest substring without repeating characters.
Example 1:
Input: s = "abcabcbb"Output: 3Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: s = "bbbbb"Output: 1Explanation: The answer is "b", with the length of 1.
Example 3:
Input: s = "pwwkew"Output: 3Explanation: The answer is "wke", with the length of 3.Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Constraints:
0 <= s.length <= 5 * 104sconsists of English letters, digits, symbols and spaces.
My solution
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let start = 0;
let end = 0;
let memo = new Set();
let count = Number.MIN_SAFE_INTEGER;
while (end < s.length) {
const char = s.charAt(end);
if (memo.has(char)) {
while (memo.has(char)) {
const firstChar = s.charAt(start);
memo.delete(firstChar);
start++
}
}
else {
memo.add(char);
const len = end - start + 1;
count = Math.max(len, count)
end++
}
}
return count === Number.MIN_SAFE_INTEGER ? 0 : count;
};