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);