题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
事例:
输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc",所以其
长度为 3。
事例:
输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是"b"
,所以其长度为 1。
事例:
输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke"
,所以其长度为 3。
JavaScript实现:
/** * @param {string} s * @return {number} */ const lengthOfLongestSubstring = function (s) { let length = s.length; let max = 0, j = 0; const list = new Set(); for (let i = 0; i < length; i++) { i !== 0 && list.delete(s.charAt(i-1)); while (j < length && !list.has(s.charAt(j))) { list.add(s.charAt(j)); j++; } max = Math.max(max, j-i) } return max; };
敏感词汇:
重复字符 -----> 散列表(涉及到次数要用散列表,字符作为key,出现次数作为value)
子串 -----> 滑动窗口
Java实现:
待补充