# 无重复字符的最长子串

  1. 无重复字符的最长子串

来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/longest-substring-without-repeating-characters/

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

github (opens new window)

# 问题

给定一个字符串 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;
};
陕ICP备20004732号-3