UNPKG

ds-algo-study

Version:

Just experimenting with publishing a package

45 lines (33 loc) 1.01 kB
/* 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 ;