# 无重复字符的最长子串
- 无重复字符的最长子串
来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/longest-substring-without-repeating-characters/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
# 问题
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
# 思路
var lengthOfLongestSubstring = function (s) {
const length = s.length;
const map = new Map();
let max = 0;
let temp = -1;
for (let index = 0; index < length; index++) {
const item = s[index];
if (map.has(item)) {
const _index = map.get(item);
temp = Math.max(temp, _index);
}
max = Math.max(max, index - temp);
map.set(item, index);
}
if (temp === -1) {
return length;
}
return max;
};