Я написал следующий код для достижения ожидаемых результатов. Он работает нормально до 200 ввода. Я думаю, что оптимизация этого кода решит мою проблему. Кто-нибудь может помочь мне оптимизировать следующий код.Может ли кто-нибудь помочь мне оптимизировать мой код?
from collections import defaultdict
number=input()
list_mine=[]
for i in range(1,number+1):
list_mine.append(raw_input(""))
#print list_mine
#understanding the number of unique occurence
unique=list(set(list_mine))
number_of_unique_occurence=len(unique)
d=defaultdict(int)
count=0
for i in unique:
for j in list_mine:
#print "i is "+str(i)
if i==j:
count = count+1
d[i]=count
count=0
print str(number_of_unique_occurence)
check = 0
counts =0
list_for=[]
for hel in list_mine:
#print "current element " + str(hel)
#print "index of that element is "+str(list_mine.index(hel))
check = check+1
if list_mine.index(hel) > 0:
#print "check = " +str(check)
for jj in range(0,list_mine.index(hel)):
#print jj
if hel == list_mine[jj]:
#print "elemnt are there"
break
else:
if counts == list_mine.index(hel)-1:
#print "greater then zero "+ str(hel) +" "+str(d[hel])
list_for.append(d[hel])
continue
counts=counts+1
else:
if check <= 1:
#print "at zero "+ str(d[hel])
list_for.append(d[hel])
print '%s' %' '.join(map(str, list_for))
входная выборка
4
bcdef
abcdefg
bcde
bcdef
Пример вывода
3
2 1 1
"BCDEF" дважды появляется на входе т.е. в первом и последнем положении, остальные слова появляются один раз. Порядок первых появлений - «bcdef», «abcdefg» и «bcde», следовательно, выход.
Я почти боюсь спросить, что происходит на входе 200. – TigerhawkT3
фактически время выполнения получение увеличивается .. замечание много .. я никогда не оптимизирую свой код раньше. я думаю, что какой-нибудь дом решит проблему? –
Был ли в моем коде заблокирован элемент, который увеличивает время выполнения? –