https://medium.com/@programmingAi/solving-a-complex-problem-in-javascript-optimizing-a-longest-substring-without-repeating-characters-9a606df91a52