Напиши функцию, которая возвращает символ с максимальным количеством подряд идущих повторений в строке
Что проверяют
На скрининге в данные это проверка базового Python без библиотек: сможете ли вы пройти последовательность и посчитать длину серии руками. Тот же приём нужен в работе, когда считаете подряд идущие одинаковые состояния в логе или во временном ряде.
Как отвечать
Сначала простое решение на стандартной библиотеке, без numpy и pandas:
from itertools import groupby
def longest_run(s: str) -> str:
runs = ((ch, sum(1 for _ in g)) for ch, g in groupby(s))
ch, _ = max(runs, key=lambda pair: pair[1], default=("", 0))
return chДальше покажите, что понимаете, откуда такая задача берётся в реальной работе. Длина серии одинаковых значений это стандартный признак для последовательностей: сколько подряд идущих сессий пользователь закрыл отказом, сколько шагов подряд датчик отдавал одно и то же. В pandas такую разметку делают через накопительную сумму по признаку смены значения, (s != s.shift()).cumsum(), и дальше группировку по полученному номеру серии. Про сложность скажите сами: один проход, линейное время, константная память, сортировка тут не нужна.
Где спотыкаются
Тянут pandas на строку из десяти символов. Импорт тяжёлой библиотеки ради задачи на два цикла читается как неумение писать на чистом Python, а на скрининге проверяют именно это.
Второе: путают частоту и серию. Самый частый символ и символ с самой длинной серией подряд это разные величины, Counter считает первое, а спрашивают второе.
Третье: не проговаривают краевые случаи. Пустой вход, ничья между двумя сериями равной длины, пробелы и регистр как значимые символы: в данных каждый из этих случаев однажды выстрелит, и интервьюер ждёт вопроса про них до кода, а не после.