https://www.codinginterview.net/2023/06/longest-substring-without-repeating.html