Encuentra eficientemente caracteres repetidos en una cadena
Sé que la eficiencia de este código no es óptima (especialmente con entradas gigantescas), y sé que hay una manera de cambiar este algoritmo para manejar otros tipos de datos y no solo una repetición en una cadena (obviamente solo hay muchos personajes para buscar).
¿Hay alguna forma de aumentar la eficiencia aquí?
Intenté usar un diccionario y la función seguía devolviendo 'none', así que probé una lista y las cosas funcionaron bien.
Gracias de antemano a cualquiera que pueda ayudarme.
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')
ahora con un diccionario ... (sigue imprimiendo 'ninguno' en la consola)
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')