LeetCode-无重复字符的最长字串
LeetCode刷题笔记
LeetCode题库:https://leetcode-cn.com/problemset/all/
无重复字符的最长字串
给定一个字符串,找出其最长无重复字符子串
// 使用 滑动窗口 思想
var lengthOfLongestSubstring = function(s) {
var max = 0;
var win = [];
// 遍历字符串
for (let i = 0; i < s.length; i++) {
// 获取窗口内有相同的字符序号,没有则为 -1
var order = win.indexOf(s[i]);
// 将字符放入窗口
win.push(s[i]);
if (order !== -1) {
// 存在相同字符,移除包括相同字符前的所有字符
for (let j = 0; j <= order; j++) {
win.shift();
}
}
// 获取最大窗口长度
max = max > win.length ? max : win.length;
}
return max;
};
console.log(lengthOfLongestSubstring('asoamsahd')); // 3
执行结果
执行用时 | 内存消耗 |
---|---|
120 ms | 39.8 MB |