Код Middle Реализация с нуля обновлено

Поиск по имени файла

Условие

checkFileName(search, fileName): все символы search должны встречаться в имени файла по порядку, но не обязательно подряд. Расширение файла не учитывается. Пример: 'crdle' и 'crocodile.txt' → true, 'el' → false.

Примеры

checkFileName("crdle", "crocodile.txt") // true
checkFileName("le", "crocodile.txt") // true
checkFileName("el", "crocodile.txt") // false

Как подойти

Ровно тот алгоритм, что стоит за нечётким поиском файлов в редакторах. Один проход и один указатель дают O(n). Ловушки, которые проверяют тесты: 'el' не подходит, потому что порядок важен; расширение отрезается, иначе 'txt' пройдёт; пустой запрос подходит всегда. В оригинальном коде с собеседования был выход за границу массива - цикл шёл по i <= length.

Подсказки: 3
  1. Это проверка на подпоследовательность, а не на подстроку.
  2. Один указатель по искомому, один проход по имени.
  3. Расширение отрезается до начала поиска.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.