Ваша функция не работает, потому что if s[i] in lst:
первоначально вернет false и никогда не сможет добавить что-либо в список lst
(поэтому оно будет оставаться ложным в течение l oop).
Вы должны изучить регулярные выражения для этого вида обработки / поиска строк:
import re
def count_longest_repetition(s, c):
return max((0,*map(len,re.findall(f"{re.escape(c)}+",s))))
Если вам не разрешено использовать библиотеки, вы можете вычислять повторения без использования списка, добавляя совпадения к счетчику, который вы используете. сбросить при каждом несоответствии:
def count_longest_repetition(s, c):
maxCount = count = 0
for b in s:
count = (count+1)*(b==c)
maxCount = max(count,maxCount)
return maxCount