- Longest Substring Without Repeating Characters
Given a string s
, find the length of the longest substring without repeating characters.
Example 1:
**Input:** s = "abcabcbb"
**Output:** 3
**Explanation:** The answer is "abc", with the length of 3.
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:
0 <= s.length <= 5 * 10^4
s
consists of English letters, digits, symbols and spaces.
JavaScript Solution
javascript
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let ans = 0
if('' === s){
return ans
}
let [left,right] = [0,-1]
// matain the mapping from character to isPresent Flag
let flags = {}
while(left < s.length){
// mark all different elements as 1s
if(( right+1 ) < s.length && !flags[s[right+1]] ){
flags[s[ right+1 ]] = 1
right++
ans = Math.max(ans,right-left+1)
}else{
// sliding leftmost 1s to 0s
flags[s[left]] = 0
left++
}
}
return ans
};