算法复习-队列
2021-06-08 14:56:292021-06-08 22:56:34
⽆重复字符的最⻓⼦串
function lengthOfLongestSubstring(s) {
if (s === '') return 0;
if (s.length === 1) return 1;
let longestStr = '';
const queue = new Map();
for (let i = 0; i < s.length; i += 1) {
if (queue.has(s[i])) {
const newStr = Array.from(queue.keys()).join('');
longestStr = newStr.length > longestStr.length ? newStr : longestStr;
i = queue.get(s[i]) + 1;
queue.clear();
}
queue.set(s[i], i);
}
const newStr = Array.from(queue.keys()).join('');
return Math.max(newStr.length, longestStr.length);
}