ds-algo-study
Version:
Just experimenting with publishing a package
45 lines (33 loc) • 1.01 kB
JavaScript
/*
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.
*/
let lengthOfLongestSubstring = function ( string ) {
if (string.length === 0) {
return 0;
}
let map = {},
max = 0,
length = 0;
for (let i = 0; i < string.length; ++i) {
if (string.charAt(i) in map) {
length = Math.max(length, map[string.charAt(i)] + 1);
}
map[string.charAt(i)] = i;
max = Math.max(max, i - length + 1);
}
return max;
};
module.exports = lengthOfLongestSubstring ;