力扣第三题 无重复的最长子串
思路:
这道题要找到给定字符串的最长子串的长度
首先想到双指针,需要二重循环和字符字典
进一步记录左指针的下标可以省略一个循环
代码:
首先右指针遍历整个字符串
最大长度是左右指针之间的距离
要满足无重复,所以左指针是出现位置的下一位
记录字符字典
var lengthOfLongestSubstring = function (s) {
let len = s.length
let maxLen = 0
let left = 0
let lastSeen = {}
let c = ''
for (let right = 0; right < len; right++) {
c = s[right]
if (lastSeen[c] !== undefined && lastSeen[c] >= left) {
left = lastSeen[c] + 1
}
lastSeen[c] = right
maxLen = Math.max(maxLen, right - left + 1)
}
return maxLen
};