Задачи
Все задачи курса в одном месте. Решение проверяет сервер скрытыми тестами; прогресс хранится в этом браузере.
00 Что умеет программа
-
Сколько шагов у 97?
start-collatz
01 Первая программа и первая ошибка
-
Кавычка
fix-quote -
Опечатка в имени
fix-name -
Год публикации
fix-type -
Лишний отступ
fix-indent -
Минуты в сутках
fix-logic
02 Имена и значения
-
Сколько секунд вы прожили
seconds-lived -
Счёт на компанию
tip-split -
Обмен
swap -
Тенге в тиыны
float-trap
03 Развилки
-
Високосный год
leap-year -
Какой треугольник
triangle-kind -
Камень, ножницы, бумага
rps-judge -
Мост тролля
quest-room
04 Снова и снова
-
Таблица умножения
times-table -
Сумма цифр
digit-sum -
Все простые до n
primes-upto -
Вышивка крестиком
weave-pattern -
Рекордсмен Коллатца
collatz-record
05 Свои слова
-
Простое ли число
is-prime -
Наибольший общий делитель
gcd -
Римские цифры
to-roman -
Проверка номера карты
luhn
06 Списки
-
Самый сильный
quake-strongest -
Средний толчок
quake-mean -
Первые k
top-k -
Карусель дежурств
rotate-list -
Серебро
second-largest
07 Собеседник из строк
-
Зеркало для ELIZA
eliza-reflect -
Перевёртыш
is-palindrome -
Фамилия и инициалы
capitalize-names -
Сколько раз слово
word-count -
Куайн с подписью
my-quine
08 Словарь и телеграф
-
Касса литер
char-freq -
Обратная азбука
invert-dict -
Анаграммы
group-anagrams -
Общие слова
common-words
09 Задача внутри задачи
-
Степень за двадцать шагов
power -
Расплющить список
flatten -
Ходы брахманов
hanoi-moves -
Перестановки
permutations -
Серпинский из звёздочек
sierpinski
10 Функции как значения
-
Сводка по странам
sort-by-key -
Бусы из функций
compose -
Счётчик слов на память
make-counter -
Бесконечные простые
primes-gen -
Свой MapReduce
word-count-mr
11 Отчёт комиссии
-
Деление с запасным значением
safe-divide -
Разбор возраста
parse-age -
Регистр на шестнадцать бит
int16-overflow -
Тесты, которые ловят мутантов
write-tests
12 Остров кроликов и лис
-
Кролик
rabbit-class -
Вектор
vector2 -
Счёт в банке
bank-account -
Семейство фигур
shape-hierarchy
13 Сколько стоит программа
-
Посчитать, не запуская
count-ops -
Каталог без повторов
dedupe-fast -
Пара на сумму
pair-sum-fast -
Заплатка для каталога
gta-catalog
14 Как список лежит в памяти
-
Закон роста
find-growth -
Свой динамический массив
dyn-array -
Связный список с хвостом
linked-list -
Развернуть цепочку
reverse-linked
15 Стек, очередь и калькулятор
-
Строгий калькулятор ОПЗ
eval-rpn -
Где сломались скобки
balanced -
Станция со степенью
shunting-yard -
Очередь из двух стопок
queue-two-stacks
16 Хеш-таблица: атака и защита
-
Своя картотека
hashmap -
Атака на PHP
collide -
Пылесос вернулся
first-repeat -
Картотека номеров карт
luhn-bucket
17 Сад деревьев поиска
-
Посадка
bst-insert -
Сколько этажей
bst-height -
По порядку без рекурсии
inorder -
Честное дерево
is-bst -
От и до
range-query
18 Кто следующий
-
Своя очередь с приоритетом
heap-push-pop -
Десять самых тихих
k-smallest -
Слить отсортированное
merge-sorted -
Медиана на лету
running-median
19 Шесть рукопожатий
-
Кратчайшая цепочка
bfs-path -
Острова
islands -
Круг в зависимостях
has-cycle -
Порядок чтения
topo-order -
Центр метро
metro-hops
20 Турнир сортировок
-
Двоичный поиск без ошибок
binary-search -
Сколько в диапазоне
count-in-range -
Вставки с ключом
insertion-sort -
Сортировальная машина
radix-sort
21 Разделяй и властвуй
-
Сортировка слиянием
merge-sort -
k-й по величине
quickselect -
Сколько беспорядка
count-inversions -
Умножение Карацубы
karatsuba
22 Запомнить, чтобы не считать
-
Лестница с гнилыми ступеньками
stairs -
Касса с пустыми ячейками
coin-change -
Поправка Дамерау
edit-distance -
Общее у двух версий
lcs -
Рюкзак вора
knapsack
23 Жадность и электричество
-
Одна бригада
activity-select -
Кто с кем связан
union-find -
Сеть Краскала
kruskal -
Код Хаффмана
huffman
24 Навигатор
-
Волна Дейкстры
dijkstra -
Беллман — Форд
bellman-ford -
A* по клеткам
grid-astar -
Маршрут по метро
metro-route
25 Потоки и пары
-
Сколько пропустит сеть
max-flow -
Узкое место
min-cut-edges -
Рассадить как можно больше
bipartite-match -
Устойчивое распределение
gale-shapley
26 Подбросим монетку
-
Площадь пятна
mc-area -
Резервуар
reservoir -
Проверка на простоту
miller-rabin -
Фильтр Блума
bloom
27 Иголка в стоге
-
Мелодия в нотах
kmp -
Скользящее окно
rabin-karp -
Подсказки клавиатуры
trie-complete -
Самый длинный повтор
longest-repeat
28 Всё есть биты
-
Двоичная и шестнадцатеричная запись
to-binary -
Дополнительный код
twos-complement -
UTF-8 вручную
utf8-encode -
Детектив-автомат
fix-mojibake
29 Логика из выключателей
-
Ещё три детали из NAND
gates-from-nand -
Полный сумматор и его зеркало
full-adder -
Стрелочник без if
mux -
Голосование
majority
30 Машина считает
-
Сложение без плюса
add-bits -
АЛУ «Искры-8»
alu -
Четвёртый флаг
overflow-flag -
Умножение сдвигами
shift-multiply
31 Память и такт
-
Защёлка и триггер по тактам
d-flipflop -
Счётчик без плюса
counter -
Светофор с кнопкой
traffic-fsm -
Соткать слово
rope-encode
32 Ты — процессор
-
Сумма до нуля
iskra-sum -
Умножить быстро
iskra-mul -
Гистограмма на экране
iskra-draw -
Свой ассемблер
assembler
33 Рентген Python
-
Машина с прыжками
stack-vm -
Восстановить по снимку
predict-dis -
Сумма на C
c-sum
34 Близко и далеко
-
Кэш LRU
lru-cache -
Симулятор кэша
cache-sim -
Транспонировать в тесноте
matrix-order
35 Конвейер и предсказатель
-
Таблица гадалок
predictor-sim -
Громкие места
vectorize -
Сколько ядер покупать
amdahl
36 Экскурсия по живой системе
-
sort | uniq -c на Python
pipeline -
Свой wc
count-lines -
Однострочники
shell-basics
37 Центр управления полётом
-
Расписание по кругу
round-robin -
Кратчайшая первой — по-настоящему
avg-wait -
Паук на asyncio
async-crawl
38 Гостиница с номерами
-
Счётчик переселений
page-faults -
Аномалия на заказ
find-belady -
Книга в два тома
translate
39 Гонки
-
Счётчик просмотров
fix-race -
Перевод без тупика
bank-transfer -
Своя лента
producer-consumer -
Ужин без тупика
deadlock-free
40 Спасательная операция
-
Чётность
xor-parity -
Диск умер — данные живы
rebuild-disk -
Сумма с памятью
checksum -
Свой git
content-store
41 Один день из жизни пакета
-
Самый длинный префикс
longest-prefix -
Сколько идёт файл
transfer-time -
Нарезка и сборка
packetize
42 Изобрести протокол
-
Отправь и жди
stop-and-wait -
Эхо
echo-server -
План адресов для офиса
subnet
43 Анатомия этой страницы
-
Разобрать запрос
parse-request -
Свой сервер
mini-http -
Журнал сервера
status-codes
44 Парламент острова Паксос
-
Часы острова
lamport-clock -
Кворум председателя
quorum -
Выборы старейшины
leader-election
45 Архивариус
-
Самые глубокие
sql-top-quakes -
Длинные и короткие слова
sql-group -
Аэропорты в зоне толчков
sql-join -
Город одного аэропорта
sql-null
46 Библиотека и банк
-
Метеостанции
create-index -
Перевод без потерь
atomic-transfer -
От и до
btree-search
47 Конкурс упаковки
-
Факс
rle -
LZ77 туда и обратно
lz77 -
Энтропия с контекстом
entropy -
Обратная перестановка
bwt
48 Поисковик по нашим учебникам
49 Музей языков
-
Машина Brainfuck
brainfuck -
Переводчик с Brainfuck
bf-compile -
FizzBuzz тремя почерками
fizzbuzz-styles
50 Лингвист в экспедиции
-
Лексер с кавычками
tokenize -
Дерево формулы
calc-parser -
Свой JSON
json-parser -
Мини-линтер
unused-names
51 Матрёшка
-
Лексер для скобок
lisp-tokenize -
Дерево из токенов
lisp-parse -
Калькулятор на скобках
lisp-eval-arith -
Имена и развилки
lisp-define -
Замыкания
lisp-lambda -
Рекурсия без дна
lisp-recursion
52 Замкнуть круг
-
Свернуть заранее
const-fold -
Выражение в машинный код
codegen-expr -
Циклы и развилки
codegen-while
53 Суд над null
-
Пройти mypy
annotate -
Цепочка без падений
option-chain -
Единицы под контролем
units-checker -
Проверка типов
type-check
54 Автоматы и регулярки
-
Дата по-русски
re-date -
Телефон в одну строку
re-phone -
Почта без перебора
re-email -
Запустить автомат
dfa-run -
Построение подмножеств
nfa-to-dfa
55 Машина Тьюринга
-
Счётчик
tm-increment -
Палиндром, не стирая
tm-palindrome -
Свой симулятор
tm-simulator
56 Разговор с Оракулом
-
Упрямец
contrarian -
Сведение
halt-to-hello -
Гонщик бобров
bb-run
57 Письмо Гёделя
-
Проверить рассадку
verify-hamilton -
Раскраска в формулу
coloring-to-sat -
Свой SAT-решатель
dpll
58 Экспедиция коммивояжёра
-
Распутать маршрут
two-opt -
Свадебный стол
annealing -
Жадное покрытие
set-cover-greedy
59 Шифровальный отдел
-
Перехваты одного дня
break-caesar -
Длина ключа
vigenere-key-length -
Блокнот дважды
otp-xor -
Маленькая бомба
enigma-crib
60 Секрет на виду у всех
-
Обмен красками в числах
dh-exchange -
RSA целиком
rsa-toy -
Ева и короткий ключ
crack-small-rsa -
Пароли для сайта
salted-hash
61 Учебный полигон
-
Закрыть вход от инъекции
sqli-fix -
Проверить границу
bounds-check -
Оценщик пароля
password-strength
62 Турнир ботов
-
Непобедимый крестик
minimax-ttt -
Отсечь лишнее
alphabeta -
Боец для «Четырёх в ряд»
connect4-bot
63 Машина учится
-
Прямая спуском
linear-gd -
Перцептрон Розенблатта
perceptron -
Ближайшие соседи
knn-digits -
Сеть для любого вентиля
xor-net
64 Лаборатория кубитов
-
Симулятор двух кубитов
qsim-2 -
Четыре состояния Белла
bell-state -
Гровер: от четырёх до шестидесяти пяти тысяч
grover-4
65 Белые пятна
-
Проверить переименование
iso-check -
Проверить схему умножения
strassen-check -
Путеводитель по курсу
capstone