Ответсообщение недоступно
Точно! Чуть исправив код он прошел тесты. И судя по временам выполнения эффективнее, чем бинарный поиск. Спасибо большое!
with open("input.txt") as txt:
st = txt.readline().strip()
n = len(st)
pole = [0]*n
voc = {}
voc2 = {}
for i in range(n):
voc[st[i]] = voc.get(st[i], 0) + 1
if i != n-1:
#voc2[st[i]] = voc2.get(st[i], 0) + 1
voc2[st[i]+st[i+1]] = voc2.get(st[i]+st[i+1], 0) + 1
max_cnt = 0
for i in range(n):
pole[i] = voc[st[i]]
if max_cnt < pole[i]:
max_cnt = pole[i]
if st == "":
print("0")
exit(0)
max_len = 1
#max_cnt = 0
for i in range(0, n):
now = pole[i]
for j in range(i+1, n):
if max_cnt == voc2[st[j-1]+st[j]]:# and j-i+1>=max_len:
#pole[i][j] = voc2[st[j-1]+st[j]]
#voc2[st[j-1]+st[j]] = -1
max_len=max(max_len, j-i+1)
else:
break
print(max_len)
#print(max_cnt)