碎碎念好吧我收回上一篇的话其实用起来也还行吧。做这题也是有点笨了哈就这样把滑动窗口忘得一干二净但是现在想起来了第一遍用set运气好过了样例后面怎么改都不对第二遍想起来写滑动窗口了但是就这样一口气遍历到最后只记住了最后一个子串的长度我还疑惑居然没有更新ans...犯蠢到此结束接下来是正确的滑动窗口题目答案/** * param {string} s * return {number} */ var lengthOfLongestSubstring function(s) { let left 0 const arr [...s] let ans 0 const st new Set() for (let right 0 ; right arr.length ; right) { const val arr[right] while (st.has(val)) { st.delete(arr[left]) left } st.add(val) ans Math.max(ans, right - left 1) } return ans };