Medium
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 * 104
s
consists of English letters, digits, symbols and spaces.function lengthOfLongestSubstring(s: string): number {
const lastIndices: number[] = new Array(256).fill(-1)
let maxLen: number = 0
let curLen: number = 0
let start: number = 0
for (let i = 0; i < s.length; i++) {
const cur: string = s.charAt(i)
const charCode: number = cur.charCodeAt(0)
if (lastIndices[charCode] < start) {
lastIndices[charCode] = i
curLen++
} else {
const lastIndex: number = lastIndices[charCode]
start = lastIndex + 1
curLen = i - start + 1
lastIndices[charCode] = i
}
if (curLen > maxLen) {
maxLen = curLen
}
}
return maxLen
}
export { lengthOfLongestSubstring }