无重复字符的最长子串

题目描述

  1. 题目地址:https://leetcode.cn/problems/longest-substring-without-repeating-characters/
  2. 题目要求
    给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

解题思路

  1. 初始化为一个空数组,并定义一个变量记录空数组的长度;
  2. 使用 indexOf 判断是否在数组中出现过,如果出现过,用splice从数组开头到当前字符串全部截取掉,如果没有,使用push放入新数组;
  3. 同时记录Max的值

解题代码

var lengthOfLongestSubstring = function(s) {
    let arr = [];
    let max = 0;
    for (let i = 0; i < s.length; i++) {
        let index = arr.indexOf(s[i]);
        if (index !== -1) {
            arr.splice(0, index + 1);
        }
        arr.push(s[i]);
        max = Math.max(arr.length, max);
    }
    return max;
};
posted @ 2022-09-25 21:18  fionna  阅读(11)  评论(0编辑  收藏  举报