Три решения задачи с Codewars на JS | Junior, Middle, Senior | Задача 'Reversing Fun'

preview_player
Показать описание
Выиграй грант в 100.000 рублей на обучение от Эльбрус Буткемп

Приходите к нам учиться!

Курс ОСНОВЫ JAVASCRIPT (онлайн)

Курс Веб-разработчик

Продолжение полюбившейся многим серии видео от Александра Князева, mentor lead направления JavaScript Москва. Решаем задачи уровня 7 Kyu на CodeWars как джун, миддл и синьор разработчик!

Полезные статьи в нашем телеграм-канале

О нас:

Кто мы такие❓

Эльбрус Буткемп - это первая (с 2018 г) в России школа IT-профессий в формате интенсивного обучения с карьерной поддержкой при трудоустройстве. Студенты 12 недель практикуются на реальных проектах и учатся с утра до вечера, погружаясь в профессию. Обучение проходит по направлениям веб-разработка на JavaScript, Data Science и UX/UI-дизайн в онлайн и оффлайн (кампусы в Москве и Санкт-Петербурге) форматах.

Буткемп — это:
- уникальная актуальная программа и методология, преподаватели с опытом в коммерческом бизнесе
- только живые лекции, интенсивная практика на реальных проектах
- короткие сроки обучения с высокой доходимостью и эффективностью
- фокус на трудоустройстве
- сильное комьюнити преподавателей и выпускников

По окончании обучения всех ждет карьерная неделя, где карьерный эксперт помогает подготовиться к собеседованию, подтянуть софт-скиллы и собрать резюме, с которыми 86% студентов находят работу в течение трех месяцев после окончания буткемпа. Также после завершения Эльбрус Буткемп есть возможность получить диплом ДПО.
Приходите на день открытых дверей в онлайне и познакомьтесь с форматом буткемп. Это лучший способ научиться сменить работу, уйти в сферу IT и увеличить свой доход.

Напишите или позвоните нам, чтобы узнать, как поступить в ближайшую группу:

☎️ +7 (499) 938-68-24
Рекомендации по теме
Комментарии
Автор

Выиграй грант в 100.000 рублей на обучение от Эльбрус Буткемп

ElbrusBootcamp
Автор

О рад твоему видео! Люблю вашу школу) не знаю ее но почему то люблю
Ролики ваши полезные и классные делайте почаще плиз

aktotuttttt
Автор

Спасибо за новое видео и интересную задачу! 👍
Варианты "мидла" и "сеньора" довольно хороши с точки зрения производительности и асимптотической сложности. Однако рекурсивное решение может столкнуться с проблемой переполнения стека вызовов. Хотя для нашего случая это не является столь критичным, так как входная строка имеет разумные ограничения по длине.

Тем не менее, остаётся ещё место для оптимизаций. Дело в том, что созданные строки часто надолго остаются в памяти рантайма и далеко не всегда оперативно удаляются сборщиком мусора из-за так называемого строкового интернирования. Таким образом, плодя огромное количество новых строк путём конкатенации (или с помощью метода slice) мы можем не совсем эффективно использовать нашу оперативную память. В этом плане, возможно, более оптимальным будет метод replace. Решение с ним можно оформить, например, как-то так:

const flipNumber = (n) => n.replace(/./g, (_, i, str) => {
const index = i >> 1;
return str.at(i & 1 ? index : ~index);
});

SerzhNesteruk