Решения оформлять в виде репозитория на github
.
Написать функцию, которая проверяет, является ли входящая строка палиндромом.
По какому-либо событию на странице выполняется определённое действие. Выполнять его чаще, чем n
раз в секунду слишком «дорого».
Необходимо общее решение, позволяющее вызывать любую функцию не чаще n
раз в секунду, даже если вызов этой функции происходит чаще.
Есть массив CSS-классов, используемых в документе. Причём некоторые из них повторяются:
[
'b-statcounter',
'b-statcounter__metrika',
'b-statcounter__metrika_type_js',
'i-bem',
'b-search__table',
'b-form-input',
'b-form-input_theme_grey',
'b-form-input_size_l',
'i-bem',
'b-form-input__input',
'b-search__button',
'b-form-button__content',
'b-form-button__text',
'b-form-button__input',
'i-bem',
'b-main-menu',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'l-page__right',
'b-static-text',
'b-static-text',
'b-foot__layout-column',
'b-foot__layout-column_type_left',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column',
'b-foot__layout-column_type_center',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_penultima',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_right',
'b-copyright__link',
'b-foot__layout-gap-i'
]
Написать код, который заменял бы самый частоиспользуемый класс на a
, следующий по частотности — на b
, и т.д. После того как использована буква z
, следует использовать комбинации aa
, ab
, ac
и т.д.
Дан массив из строк:
var list = ['logo', 'logo-title', 'logo-head', 'tab-www', 'tab-more', 'tab-more-auto', 'tab-more-afisha', 'tab-more-money', 'login', 'settings'];
Строки соответствуют регулярному выражению [a-z-]+
.
Мы хотим отправить эти значения на сервер в GET-запросе: http://host.com/{path}
, где {path}
содержит все данные из list
.
- Придумайте такой формат
path
, который позволяет передать данные минимальным числом символов. - Напишите функцию, которая будет сериализовать данный массив в строку вашего формата. Напишите функцию, которая будет распаковывать их обратно в исходный массив.
Алгоритм должен быть симметричен, т.е. удовлетворять условию:
JSON.stringify(list) === JSON.stringify(listToPath(pathToList(list)))