求字符串的最长不重复子串JS
时间: 2024-09-13 21:08:01 浏览: 41
3. 无重复字符的最长子串
在JavaScript中,求一个字符串的最长无重复字符子串通常可以使用滑动窗口或哈希集合的方式来解决。这里是一个基于哈希集合的解决方案:
```javascript
function lengthOfLongestSubstring(s) {
let maxLength = 0;
let seen = {};
let left = 0;
for (let right = 0; right < s.length; right++) {
if (seen[s[right]]) {
left = Math.max(left, seen[s[right]] + 1);
}
maxLength = Math.max(maxLength, right - left + 1);
seen[s[right]] = right;
}
return maxLength;
}
```
这个函数的工作原理是维护一个左边界`left`和右边界`right`,并在每个位置检查从`left`到当前位置是否有重复字符。如果有,移动左边界`left`到重复字符的下一个位置。同时更新最长子串的长度`maxLength`。
阅读全文