Algorithms

A collection of 37 posts

Algorithms

Fun ES #6: перевернуть число

Задачки с собеседований. Сборник решений Задача про переворот строки вызвала интерес у многих читателей, как оказалось. И даже стали писать в личку. Например, Леонид Лебедев, верно подметил, что задачу на переворот числа можно решить без приведения к строке. Да, можно. Но я не стал

Algorithms

Fun ES #5: перевернуть строку

Задачки с собеседований. Сборник решений Давно я не писал ничего из серии разбора задачек. Краткий пост про задачку, которую уже просто замусолили. Я не считаю, что эта задача может показать крутость разработчика. Задачка может показать на сколько разработчик давно знаком с языком и на

Algorithms

ASP.NET membership password hashing reimplemented in PHP

Будни разработчика Сейчас у меня стадия активной переработки проекта анонимного поиска работы — GeekJob.ru Этот проект написан на ASP.NET еще в далеком 2012 году, крутится на Windows Server, хранит данные в MS SQL. И сейчас стоит задача его кардинально переработать и сделать супер

Algorithms

Алтернатива switch case в JS/PHP

Switch-hash структуры и вопрос с php-собеседования У вас бывало такое, что нужно где-то получить данные из switch-case блока, при этом это нужно единожды и это где-то нужно здесь и сейчас. Например при инициализации массива? И не хочется куда-то выносить код, заводить отдельные переменные, которые

Algorithms

Пишем GCD функцию

Задачки с собеседований Очередная задачка с собеседований. На этот раз написать функцию для нахождения наибольшего общего делителя. Вариант решения будем писать на JS, но его легко повторить и на других языках, если понять суть. Почему JS? Потому, что на нем можно изгаляться и показывать

Algorithms

Fun ES #4: задачки в ФП стиле

Реализуем map, reduce, filter С приходом моды на функциональное программирование в JS пришли и вопросы для собеседований по этой же теме. Логично, если назвался функциональщиком, не желая отвечать на вопросы по ООП, будь добр показать, что ты умеешь в FP. В свое время была

Приведение типов в JS
Algorithms

Приведение типов в JS

Магия или простые правила? «Где отсутствует точное знание, там действуютдогадки, а из десяти догадок девять — ошибки» (с) Максим Горький Данный материал, в первую очередь, вам не только поможет пройти собеседования

Algorithms

Используем итераторы в JS

Меняем подход к циклам Вопрос на собеседовании — назовите все способы пройтись по всем элементам массива/объекта. Полный ответ включает в себя список: циклы for, while, do while for-in и for-of методы map, foreach, filter, reduce, reduceRight, every, some итераторы Итераторы Вот про итераторы часто

Случайные числа не случайны
Algorithms

Случайные числа не случайны

Как создать генератор случайных чисел на JS и предсказать Math.random() Вы когда-нибудь задумывались, как работает Math.random()? Что такое случайное число и как оно получается? А представьте вопрос на

Algorithms

Микросервисы на фронтенде

Сборник материалов Когда-то, еще работая в крупной компании, была у нас идея фикс — создать такую архитектуру на фронтенде, чтобы можно было сочетать в себе разные технологии и фреймворки. Например, можно было бы сочетать React и Angular. И чтобы это все взаимодействовало как микросервисы. Зачем?

Algorithms

Инициализация массива

С заполнением диапазоном чисел на ES6 Задачка очень старая. Были времена, когда ее спрашивали на собеседованиях. Сейчас вряд ли кто-то всерьез будет спрашивать про нее на техническом интервью, но в жизни и быту она периодически встречается. А суть задачи проста: создать массив N размерности

Algorithms

Простой способ генерации символьных ID и UUID

На JavaScript Если вдруг нужно быстро сгенерить символьные ID, которые представляют собой сочетание цифр и символов, при этом вам не нужна высокая надежность и коллизии вам не страшны, то можно сделать это очень быстро следующим образом: const id = `f${(~~(Math.random()*1e8)).toString(16)

Algorithms

Найти крайнего в списке

Last in list. Hacks and tricks with Array in JS Сегодня пара слов про работу с массивами в JS. В целом работа с массивами (aka списками) в JavaScript — это большая тема. Что-то уже я когда-то описывал. Все в одну большую статью пихать не хочется

Algorithms

Math.ceil & Math.floor

Tips & Tricks in JS Сегодня не про задачки, а про трюки в JS. Пример, как можно сократить запись Math.ceil и Math.floor. Не то, чтобы это круто, но в чужом коде, особенно в NPM пакетах такое может встречаться. Чтобы это не вызывало

Algorithms

Високосный год

Задачки с собеседований JS, PHP, Rust, Python, Go… Есть всего 2 типа языков программирования: те, на которые люди все время ругаются, и те, на которых никто не пишет. Bjarne Stroustrup Есть такая задача: определить является ли год високосным. Причем эта задача может встретиться как

Algorithms

Fun ES #3. Найти пересечение в массивах

Задачки с собеседований и не только Дан список пользователей. У каждого есть массив скилов. Нужно отфильтровать людей имеющих только определенные скилы: let users = [ {name: 'Alex', experience: ['React', 'Babel']}, {name: 'Boba', experience: ['Ember', 'jQuery']}, {name: 'Lola', experience: ['Angular', 'TS']}, ]; // Нужны только люди с такими скилами

Algorithms

Fun ES #1

Задачки с собеседований У меня большой опыт технических собеседований, а сейчас иногда приходится делать технический скрининг кандидатов (ака собеседование) для наших заказчиков в New.HR. За 15 лет разработки повидал, как говорится, всякого и накопил опыт. И вот за эти годы у меня собралось

Algorithms

Comma separated parser

В Nodejs быстро и без регулярок Вдруг встала задача принять данные с разделителем на сервере в Nodejs и распарсить их в объект. Пример таких данных: const rawstr = 'name:Alexander;position:CTO;job:New.HR'; Я очень быстро могу придумать несколько способов, начиная от регулярных

Algorithms

Сделать reshape массива

Превращаем вектор в матрицу Допустим есть одномерный массив. Для примера сгенерим его и заполним числами от 0 до 9 const arr1 = Array.apply(null,{length:9}).map(Number.call, Number) Теперь нам надо превратить его в матрицу 3×3, к примеру. Что делаем?

Algorithms

Пишем функцию кодирования невидимок

На суррогатных парах Все уже успели почитать твит for(A in {A󠅬󠅷󠅡󠅹󠅳󠄠󠅢󠅥󠄠󠅷󠅡󠅲󠅹󠄠󠅯󠅦󠄠󠅊󠅡󠅶󠅡󠅳󠅣󠅲󠅩󠅰󠅴󠄠󠅣󠅯󠅮󠅴󠅡󠅩󠅮󠅩󠅮󠅧󠄠󠅱󠅵󠅯󠅴󠅥󠅳󠄮󠄠󠅎󠅯󠄠󠅱󠅵󠅯󠅴󠅥󠅳󠄠󠄽󠄠󠅳󠅡󠅦󠅥󠄡:0}){alert(unescape(escape(A).replace(/u.{8}/g,[])))}; — Fake “Unicode.” ↙️ (@FakeUnicode) July 5, 2017 Статью с разбором https://www.stefanjudis.com/blog/hidden-messages-in-javascript-property-names/ И даже перевод статьи на Хабре https:

Algorithms

Замена for и let

В arrow functions Покажу на примере 1й функции, как заменить цикл for () и инициализацию переменных в стрелочных функциях: Пример функции вычисления n-го числа Фибоначи с применением деструкторизации: function fib(n){ let[ x, y ] = [ 0, 1 ]; for (let i=0; i<n; i++) { [ x,

Algorithms

GCD / НОД

Пример с деструктуризацией Задачка для собеседования — написать функцию вычисления наибольшего общего делителя — НОД (GCD). Наибольший общий делитель целых чисел — это наибольшее из натуральных чисел, которое делит каждое из данных чисел. Например gcd(30,15) = 15. Пример решений на ES6+ с деструктуризацией Цикл function gcd(

Algorithms

Склоняем числительные

1 дня, 2 лет, 5 день Склонять числительные нужно периодически в работе. Цены, возраст, количество товара и так далее… Предлагаю простую функциональную реализацию в 1 строчку: const numfix = (n, t) => t[ (n %= 100, 20 > n && n > 4) ? 2 :[2,

Algorithms

Простой XOR криптор

В функциональном стиле Классический пример простейшей функции шифрования текстовой информации с использованием алгоритма XOR может выглядеть так: function crypt(str, key){ var newstr = ''; for(let i=0; i < str.length; i++) { let char = str.charCodeAt(i) ^ key; newstr += String.fromCharCode(char); } return

👍 ?
👓 ?