你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

【算法之路LeetCode JavaScript版】3、无重复字符的最长子串

2021-12-6 9:47:59

文章目录

    • 题目
    • 解法
      • 暴力解题(借鉴网上滑动窗口解题思路)

历时好几天,成功拿下第三题,击败5.02%的用户!!!(大概四个小时左右)终究还是太菜了!!!加油!!!

在这里插入图片描述

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
     

示例 4:

输入: s = ""
输出: 0
 

提示:

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

解法

暴力解题(借鉴网上滑动窗口解题思路)

var lengthOfLongestSubstring = function(s) {
  var arr = [];
  var max = 0;
  var sArr = s.split('');

  for(var i = 0; i < sArr.length; i ++) {
    if(arr.indexOf(sArr[i]) === -1) {
      arr.push(sArr[i])
    }else {
      sArr.splice(0, 1);
      max < arr.length ? max = arr.length : max;
      arr = [];
      i = -1;
    }
  }
  max < arr.length ? max = arr.length : max;

  return max;
};