无重复字符的最长子串
给定一个字符串 s,找出其中不含有重复字符的最长子串的长度,滑动窗口即可
function lengthOfLongestSubstring(s) { if (s.length === 0) { return 0; } let l = 0, r = 0; let maxLen = 1; const charMap = {}; while (r < s.length) { if (s[r] in charMap && charMap[s[r]] >= l) { l = charMap[s[r]] + 1; } charMap[s[r]] = r; maxLen = Math.max(maxLen, r - l + 1); r++; } return maxLen; } console.log(lengthOfLongestSubstring("abcaddcab")); console.log(lengthOfLongestSubstring("bbbbb")); console.log(lengthOfLongestSubstring("pwwkew"));
要用 s[r] in charMap
做判断,不能用 charMap[s[r]]
做判断,因为索引为 0 会被判断为 false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论