Назад к задачам
PyrusПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
12
Однопроходный фильтр последовательности с исключением последних N элементов
Компании, где спрашивали:
Условие задачи
Реализуйте функцию FilterLast, которая возвращает все элементы исходного потока, за исключением последних N элементов. При этом исходный поток нельзя обходить более одного раза и нельзя сохранять его полностью в памяти, так как его длина заранее неизвестна (вызов source.Count() потребует полного перечисления). Требования к решению:
- использовать одно‑проходный потоковый алгоритм;
- значение N значительно меньше длины последовательности;
- допускается дополнительная память лишь для небольшого количества элементов (буфер размером N).
IEnumerable<T> FilterLast<T>(IEnumerable<T> source, Int32 skipCount)