https://medium.com/@asierr/cracking-the-interview-longest-substring-without-repeating-characters-521f6f43dab4