AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
[leetcode](https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) 给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。 **示例 1:** ~~~ 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 ~~~ **示例 2:** ~~~ 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 ~~~ **示例 3:** ~~~ 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。   请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 ~~~ 运行代码: ~~~ /** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { if (s.length <= 0) return 0 let arr = s.split(''); let resArr = []; let array = []; for (let index = 0; index < arr.length; index++) { if (resArr.indexOf(arr[index]) < 0) { resArr.push(arr[index]); array.push(resArr.length); } else { resArr = resArr.slice(resArr.indexOf(arr[index]) + 1, resArr.length); resArr.push(arr[index]); array.push(resArr.length); } } const len = array.sort((a, b) => a - b)[array.length - 1]; return len } ~~~ 解题思路: resArr存入arr中的字符串,如果有重复则从resArr重复字符串位置开始到结尾,截取新的数组,每次resArr的变动都把长度传入array中,循环结束去除array中的最大长度即为无重复最长长度