题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return int整型 */ var lengthOfLongestSubstring = function (s) { if (!s.length) return 0 let max = 0 //右指针,滑动窗口 let rTemp = 0 //存储当前的滑动窗口 let hash = new Set() //左指针每次在有重复字符的时候都向右移动 for (let i = 0; i < s.length; i++) { //当没有重复字符&&右指针不出界的时候添加进滑动窗口,右指针向右移动 while (rTemp < s.length && !hash.has(s[rTemp])) { hash.add(s[rTemp]) rTemp++ max = Math.max(max, rTemp - i) } hash.delete(s[i]) } return max }; module.exports = { lengthOfLongestSubstring: lengthOfLongestSubstring, };