Не проходит 3 тест, не могу подобрать тест, где будет выявлена ошибка. В конце наставил костыли, другого варианта не нашел
В этой задаче Вам требуется найти максимальную по длине подстроку данной строки, такую что каждый символ встречается в ней не более k раз.
Формат ввода В первой строке даны два целых числа n и k (1 ≤ n ≤ 100000, 1 ≤ k ≤ n ) , где n – количество символов в строке. Во второй строке n символов – данная строка, состоящая только из строчных латинских букв.
Формат вывода В выходной файл выведите два числа – длину искомой подстроки и номер её первого символа. Если решений несколько, выведите любое.
s=str(input()).split()
n=int(s[0])
k=int(s[1])
s=str(input())
lmax=0
l=0
r=0
a=set(s)
a=list(a)
slovar={}
for i in range(len(a)):
slovar[a[i]]=0
slovar[s[0]]=1
for l in range(n):
while r<len(s)-1 and slovar[s[r]]<=k:
r=r+1
slovar[s[r]]+=1
if r-l>=lmax:
lmax=r-l
left=l
right=r
slovar[s[l]]-=1
left=left+1
if left>1:
lmax+=1
print(lmax,left)
Источник: Stack Overflow на русском