https://evaguin.medium.com/finding-the-length-of-the-longest-substring-without-repeated-characters-in-python3-9c532d9be771