АлгоЭксперт ТС Решения
Этот репозиторий содержит некоторые решения проблем, связанных с вопросами по кодированию AlgoExpert.
Примечание:
Я еще не выполнил все задания и постоянно пополняю этот репозиторий новыми решениями, новыми структурами, новыми тестами и т. д. Итак, если вы хотите увидеть самые последние изменения, проверьте последнее задание, помеченное как выполненное. в разделе списка задач ниже.
? Легко (31) | ? Средний (73) | ? Жесткий (58) | ? Очень сложно (38) |
---|---|---|---|
|
|
|
|
Более...
| Более...
| Более...
| Более...
|
(вернуться к началу)
Автоматические тесты после каждого коммита — с использованием Git Hooks и Jest
Автоматические тесты после каждого нажатия — с использованием Github Actions и Jest.
Общая папка — чтобы помочь вам повторно использовать код.
У каждой задачи есть своя папка , которая поможет вам систематизировать решения.
Для каждой задачи имеется собственный тестовый файл , который поможет вам запустить тесты для конкретной задачи.
Для каждой задачи имеется собственный тестовый файл , который поможет вам организовать тестовые сценарии.
У каждого задания есть собственный файл README.md , который поможет вам понять задание.
У каждой задачи есть собственный файл решения , который поможет вам написать решение.
Легко протестировать свое решение — просто создайте новый файл решения и обновите тестовый файл своим решением.
Makefile — поможет вам запускать тесты, создавать новые задачи и фиксировать свои решения.
Легко зафиксировать решение — просто запустите make commit
, и оно зафиксируется с сообщением feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
Легко создавать новые задачи — просто запустите make new
, и он создаст для вас папку, файлы и файл README.md, используя шаблоны.
Легко создавать новые решения — просто запустите make new-solution
, и он создаст для вас файл решения, используя шаблоны.
Легко запускать тесты — просто запустите make test
, и он запустит все тесты.
Вы можете настроить шаблоны — просто обновите папку scripts/templates
Легко отлаживать в VSCode — существует файл launch.json
с конфигурацией отладки для текущей вкладки открытого задания в VSCode.
Автоматическое обнаружение последней выполненной задачи для создания нового решения при выполнении команды make new-solution
Автоматическое обнаружение следующего задания, которое необходимо выполнить , для создания нового задания при выполнении команды make new
.
Решение для автоматического обновления было протестировано при выполнении команды make new-solution
.
(вернуться к началу)
Реплицируйте назначение функции из solution-0.ts
в новый файл при выполнении команды make new-solution
После создания нового задания откройте все новые файлы в VSCode.
Обновите все испытания с новой структурой после завершения списка испытаний.
Автоматическое обновление количества задач, выполненных на каждом уровне, после завершения каждой задачи при выполнении команды make commit
.
Переместите корневые файлы конфигурации в папку .config
Создайте папку docs
с файлом README.md
с некоторыми советами и рекомендациями.
(вернуться к началу)
Мой метод для решения задач это:
Подготовка
Создайте папку и файлы испытания (с помощью команды make new
).
1-й шаг
Прочитайте описание задачи
Нарисуйте решение
Напишите решение на TypeScript, не просматривая подсказки по решению.
Запустите тесты (с помощью команды make test-changed
)
Рефакторинг решения
Повторяйте шаги 4 и 5, пока все тесты не будут пройдены.
Оцените сложность решения
Зафиксируйте решение (с помощью команды make commit
)
2дн шаг
Проверьте подсказки по решению
Сравните мое решение с подсказками по решению
Попробуйте улучшить мое решение или создать новое на основе подсказок по решению (с помощью команды make new-solution
).
Повторяйте шаги с 4 по 10, пока я не буду удовлетворен решением.
Зафиксируйте решение (с помощью команды make commit
)
3-й шаг
Посмотрите видео с решением
Реализуйте другие решения из видео или выполните рефакторинг моего решения на основе видео.
Зафиксируйте решение (с помощью команды make commit
)
блок-схема LR
СТАРТ((Подготовка)) --> один
подграф первый [1-й шаг]
A[Читать] --> B[Нарисовать]
B --> C[Код]
C --> D[Тесты]
Д --> С
D --> I[Сложность]
Я --> R[Зафиксировать]
конец
второй подграф [2-й шаг]
R --> J[Подсказки]
J --> K[Сравнить]
K --> L[Рефакторинг]
Л --> М[Тесты]
М --> Л
M --> S[Зафиксировать]
конец
подграф третий [3-й шаг]
С --> Н[Видео]
Н --> О[Код]
O --> P[Код/Рефакторинг]
P --> Q[Тесты]
В --> П
Q --> T[Зафиксировать]
конец
один -> два
два -> три
три --> Конец(((Конец)))
Загрузка(вернуться к началу)
Node.js
Машинопись
шутка
(вернуться к началу)
Node.js
(вернуться к началу)
git clone [email protected]:filipe1309/algoexpert-solutions.git
CD Algoexpert-решения
сделать установку
(вернуться к началу)
Я создал Makefile
который поможет вам запускать тесты.
Запустите все тесты:
сделать тест
Запустите специальный тест:
сделать тест t=CHALLENGE_NAME
Пример:
make test t=two-number-sum
Запустите измененные тесты:
внести изменения в тест
(вернуться к началу)
Я также создал Makefile
с некоторыми дополнительными командами.
создать новый [n=CHALLENGE_NAME] [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
Пример:
make new
(заполните подсказки) ИЛИmake new n=two-number-sum l=easy c=arrays
Уровни:
easy
,medium
,hard
,very-hard
Это создаст:
папка ( src/easy/two-number-sum
)
файл solution-0.ts
(файл, в который вы напишете свое решение; при желании вы можете создать дополнительные и обновить тестовый файл)
тестовый файл solution.spec.ts
тестовый файл случая cases.ts
файл README.md
сделать фиксацию [m=COMMIT_MESSAGE]
Пример:
make commit m="feat: add two number sum solution"
если вы не передадите аргументm
, он зафиксируется с сообщением
feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
принять новое решение [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
Пример:
make new-solution [l=easy] [n=two-number-sum]
ИЛИmake new-solution
(заполните подсказки)
При этом будет создан новый файл решения solution-{SOLUTION_NUMBER}.ts
и обновлен тестовый файл.
Если
solution-0.ts
уже существует, оно создастsolution-1.ts
и обновит файл index.ts и тестовый файл. И так далее...
Команда помощи:
помочь
(вернуться к началу)
Запросы на вытягивание приветствуются. Если вы хотите внести существенные изменения, пожалуйста, сначала откройте вопрос, чтобы обсудить, что вы хотели бы изменить.
Обязательно обновляйте тесты по мере необходимости.
(вернуться к началу)
Массачусетский технологический институт
(вернуться к началу)
АлгоЭксперт
Новогодний подарок — тщательно подобранный список из 75 лучших вопросов по LeetCode, которые помогут сэкономить ваше время
Шаблон ShubcoGen™
Git Hooks без дополнительных зависимостей, таких как Husky, в проекте Node.js.
Типскрипт + шутка
Унитарные тесты с Node.js, Jest и TypeScript
Что такое обозначение Big O: сложность пространства и времени
Использование сопоставления путей без TypeScript
Сопоставление путей
Разрешение модуля
Понимание уравнения расстояния Левенштейна для начинающих
Проблема стабильного брака
Проблема стабильного брака (немного математики)
(вернуться к началу)
Готово с :heart: Филипе Леухом Бонфимом ?
(вернуться к началу)