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

longest_nonrepeating_substring("abcabcbb") ➞ "abc"

longest_nonrepeating_substring("aaaaaa") ➞ "a"

longest_nonrepeating_substring("abcde") ➞ "abcde"

longest_nonrepeating_substring("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?