How to find longest substring without repeating characters in a given string ?
Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
goli202084 Answered question
This problem follows a sliding window mechanism and can be easily solved by looping through the characters using indexes sliding over them
Javascript code below
/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { let windowStart = 0, maxLength = 0, charIndexMap = {}; for (let windowEnd = 0; windowEnd < s.length; windowEnd++) { if (typeof charIndexMap[s[windowEnd]] !== 'undefined') { windowStart = Math.max(windowStart, charIndexMap[s[windowEnd]]+1); } charIndexMap[s[windowEnd]] = windowEnd; maxLength = Math.max(maxLength, windowEnd - windowStart + 1); } return maxLength; };
goli202084 Answered question