首页 > 解决方案 > 不重复字符的最长子串(for循环方式)

问题描述

LeetCode 问题 #3

https://leetcode.com/problems/longest-substring-without-repeating-characters/

输入:“abcabcbb”

输出:3

解释:答案是“abc”,长度为3。

var lengthOfLongestSubstring = function(s) {
  var arr = s.split("");
  var fArr = [arr[0]];
  var x = fArr.length;
  
  for (var i = 1; i < arr.length; i++) {
    for (var j = i - 1; j < x; j++) {
      if (arr[i] !== fArr[j]) {
        fArr = [fArr[j] + arr[i]]; //fArr=['ab']
        x = fArr[j].length;
      } else {
        fArr.push(',');
        fArr.push(arr[i]);
      }
    }
  }
  
  console.log(fArr);
};

lengthOfLongestSubstring("abcabcbb");

我想在每次执行 for 循环时改变 x = fArr[j].length,因此它可能基于更新的 fArr 长度来运行 fArr 中的所有元素,但它显示“未捕获的 TypeError:无法读取属性 'length'未定义”,有人知道为什么吗?

标签: javascriptstringalgorithmlongest-substring

解决方案


推荐阅读