Maior substring sem caracteres repetidos

Published by Helen Yu in

Escreva uma função que retorne a substring mais longa sem caracteres repetidos para uma string de entrada.

Exemplos

longestNonrepeatingSubstring("abcabcbb") ➞ "abc"

longestNonrepeatingSubstring("aaaaaa") ➞ "a"

longestNonrepeatingSubstring("abcde") ➞ "abcde"

longestNonrepeatingSubstring("abcda") ➞ "abcd"

Observações

  • Se várias substrings empatarem em comprimento, retorne a que aparece primeiro.
  • Bônus: você consegue resolver este problema em tempo linear?