Skip to content

Instantly share code, notes, and snippets.

@ricardomaia
Created July 1, 2017 17:43
Show Gist options
  • Save ricardomaia/2a39cc3996916bedbe8fcb2376ffbe62 to your computer and use it in GitHub Desktop.
Save ricardomaia/2a39cc3996916bedbe8fcb2376ffbe62 to your computer and use it in GitHub Desktop.
def obter_mais_longa_substring(s):
alfabeto = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11,'l':12,'m':13,'n':14,'o':15,'p':16,'q':17,'r':18,'s':19,'t':20,'u':21,'v':22,'w':23,'x':24,'y':25,'z':26}
substrings = []
substring_atual = []
posicao_anterior = 0
for c in s:
posicao_atual = alfabeto[c]
if posicao_atual >= posicao_anterior:
substring_atual.append(c)
posicao_anterior = posicao_atual
else:
substrings.append(substring_atual)
substring_atual = []
substring_atual.append(c)
posicao_anterior = 0
substrings.append(substring_atual)
maior_substring = []
tam_maior_substring = 0
for substring in substrings:
if len(substring) > tam_maior_substring:
maior_substring = substring
tam_maior_substring = len(substring)
return ''.join(maior_substring)
# Alguns testes
print(obter_mais_longa_substring('azcbobobegghakl')) # beggh
print(obter_mais_longa_substring('aabbbabcdefgh')) # abcdefgh
print(obter_mais_longa_substring('zzabcxxxxxxx')) # abcxxxxxxx
print(obter_mais_longa_substring('aaaaaaaaaaaa')) # aaaaaaaaaaaa
print(obter_mais_longa_substring('nehl')) # ehl
print(obter_mais_longa_substring('python')) # tho
@aantunes123
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment