Longest Substring Without Repeating Characters

Problem Description

Given a string s, find the length of the longest substring without duplicate characters.

 

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3. Note that "bca" and "cab" are also correct answers.

Example 2:

Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"
Output: 3
Explanation: 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:

Solution (JavaScript)

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var len = s.length;
    var max = 0;
    var map = new Map();
    
    for(var i = 0; i < len; i++){
        var c = s.charAt(i);
        while(map.has(c)) map.delete(map.keys().next().value);
        map.set(c, 1);
        max = Math.max(max, map.size);
    }
    
    return max;
};