# All files / algorithms/lib maxLengthSubString.ts

0% Statements 0/27
0% Branches 0/1
0% Functions 0/1
0% Lines 0/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

     export function maxLengthSubString(str: string): number {
      const endIndex = str.length - 1;
      let res = 1;
      let L = 0;
      let R = 1;
      let subStr = str[L];

      if (!str) return 0;
      if (str.length < 2) return 1;

      while (L <= endIndex && R <= endIndex) {
        if (!subStr.includes(str[R])) {
          subStr = subStr + str[R];
          res = Math.max(subStr.length, res);
          R++;
        } else {
          L++;
          subStr = str[L];
          R = L + 1;
        }
      }

      return res;
    }

    console.log(maxLengthSubString("a"), "expect: " + 1);
    console.log(maxLengthSubString(""), "expect: " + 0);

    console.log(maxLengthSubString("abcabcbb"), "expect: " + 3);
    console.log(maxLengthSubString("ab"), "expect: " + 2);
    console.log(maxLengthSubString("aaaaaa"), "expect: " + 1);
    console.log(maxLengthSubString("aabcDfffaaaa"), "expect: " + 5);