Эффективно найти повторяющиеся символы в строке
Я знаю, что эффективность этого кода не является оптимальной (особенно с гигантскими входными данными), и я знаю, что есть способ изменить этот алгоритм для обработки других типов данных, а не просто для повторения в строке (очевидно, есть только такие много символов для поиска).
Есть ли способ повысить эффективность здесь?
Я попытался использовать словарь, и функция продолжала возвращать 'none', поэтому я попробовал список, и все работало нормально.
Заранее спасибо всем, кто может мне помочь!
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')
теперь со словарем .... (он продолжает печатать 'none' на консоли)
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')