Sobes.tech
Back to tasks
Junior — Senior
52

Однопроходный фильтр последовательности с исключением последних N элементов

Companies where asked:

PyrusPyrus
Get help with live coding in real time with Sobes Copilot
Task condition

Реализуйте функцию FilterLast, которая возвращает все элементы исходного потока, за исключением последних N элементов. При этом исходный поток нельзя обходить более одного раза и нельзя сохранять его полностью в памяти, так как его длина заранее неизвестна (вызов source.Count() потребует полного перечисления). Требования к решению:

  • использовать одно‑проходный потоковый алгоритм;
  • значение N значительно меньше длины последовательности;
  • допускается дополнительная память лишь для небольшого количества элементов (буфер размером N).
IEnumerable<T> FilterLast<T>(IEnumerable<T> source, Int32 skipCount)