记录不成熟的第二天

    技术2022-07-15  55

    ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤

    力扣最憨解题思路(仅供参考)

    ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ No.3 无重复字符的最长子串 题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

    TIP:一开始不懂子串和子序列的含义,后来去查了一下 两者的区别是子串要求连续的,子序列不需要连续 比如,“中出”是“我们中出了一个叛徒”的子串(同时也是子序列)。而“XQ”是“LXTQL”的子序列,而不是子串。

    答案:

    var lengthOfLongestSubstring = function (s) { var news = [], Max = 0; //定义一个用来存放的空数组和一个用来计数的值 for (let i = 0; i < s.length; i++) { //开局一个for循环答案全靠遍历 if (news.includes(s[i])) { //includes()用来判断是否包含某个字符,也有其他的检测方法 比如map里的map.has()....诸如类似的有好多这里只是用了其中的一种 var info = news.indexOf(s[i]) //查看存在的字符下标 news.splice(0, info + 1) //删除自定义数组头部至下标的所有字符 news.push(s[i]) //填加刚刚存在的字符 } else { //如果自定义中不存在就push一下 news.push(s[i]) if (news.length > Max) { //每次push完及时更新自定义数组的最大值 Max = news.length } } } return Max };

    这一定不是最优解,记录的目的就是为了以后再次翻看会有不一样的解题思路

    Processed: 0.013, SQL: 9