Encontre com eficiência caracteres repetidos em uma string
Eu sei que a eficiência desse código não é ideal (especialmente com entradas gigantes) e sei que existe uma maneira de alterar esse algoritmo para lidar com outros tipos de dados e não apenas uma repetição em uma string (obviamente existem apenas muitos caracteres para pesquisar).
Existe alguma maneira de aumentar a eficiência aqui?
Tentei usar um dicionário e a função continuava retornando 'none'; tentei uma lista e as coisas deram certo.
Agradeço antecipadamente a quem puder me ajudar!
def find_repeater(string):
my_list = []
my_list.append(string[0])
for i in range (1, len(string)):
if string[i] in my_list:
print 'repetition found'
return (string[i])
else:
my_list.append(string[i])
print find_repeater('abca')
agora com um dicionário .... (ele continua imprimindo 'none' no console)
def find_repeater(string):
my_dict = {}
my_dict[0] = string[0]
for i in range (1, len(string)):
if string[i] in my_dict:
print 'repetition found'
return string[i]
else:
my_dict[i] = string[i]
print find_repeater('abca')