Проектная лаборатория

Собственный Grep

0 / 33этапов пройдено

Этап 23 · Квантификаторы

От n до m повторений

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы добавите поддержку квантификатора диапазона ({n,m}).

Квантификатор {n,m}

Квантификатор {n,m} требует от n до m совпадений предшествующего элемента включительно. Иными словами, элемент должен встретиться не менее n и не более m раз.

Например:

  • ca{2,4}t находит совпадение в "caat" (две "a" входят в диапазон).
  • ca{2,4}t находит совпадение в "caaat" (три "a" входят в диапазон).
  • ca{2,4}t находит совпадение в "caaaat" (четыре "a" входят в диапазон).
  • ca{2,4}t не находит совпадения в "caaaaat" (пять "a" превышают максимум).
  • n\d{1,3}m находит совпадение в "n123m" (три цифры входят в диапазон).
  • n\d{1,3}m не находит совпадения в "n1234m" (четыре цифры превышают максимум).
  • p[xyz]{2,3}q находит совпадение в "pzzzq" (три символа входят в диапазон).
  • p[xyz]{2,3}q не находит совпадения в "pxq" (один символ меньше минимума).
  • p[xyz]{2,3}q не находит совпадения в "pxyzyq" (четыре символа превышают максимум).

Проверки

Тестирующая система запустит программу так:

$ echo -n "caaaat" | ./your_program.sh -E "ca{2,4}t"

Программа должна:

  • Завершиться с кодом 0, если входная строка соответствует шаблону.
  • Завершиться с кодом 1 в противном случае.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init grep ./my-grep --language go

2. Откройте папку в IDE

cd ./my-grep

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage ug0

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста