题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
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,
};
查看19道真题和解析