codewars | JavaScript задачи
codewars | JavaScript задачи - это канал в Telegram, где вы сможете решать задачи по JavaScript на разных уровнях сложности и совершенствовать свои навыки программирования каждый день. Мы предлагаем широкий спектр задач, начиная от простых и до более сложных, чтобы вы могли постепенно развиваться в программировании. Присоединяйтесь к нашему каналу, чтобы получать регулярные обновления с новыми задачами и участвовать в обсуждениях с другими участниками. Мы с нетерпением ждем вас в codewars | JavaScript задачи!
Приговор разбить
Напишите функцию, которая принимает массив слов, объединяет их в предложение и возвращает это предложение
Вы можете игнорировать необходимость очистки слов или добавления знаков препинания, но вам следует добавлять пробелы между каждым словом.
Будьте внимательны: ни в начале, ни в конце предложения не должно быть пробела!
Пример:
['hello', 'world', 'this', 'is', 'great'] => 'hello world this is great'
#8kyu
🔗 Перейти к задаче
@codewars_js
Хочешь освоить или улучшить свои навыки во фронтенде?
В канале Frontend Developer есть всё необходимое — бесплатные курсы по фронтенду(HTML, CSS, JS , React и др.), готовый код, полезные ресурсы и статьи. А также чат, где мы помогаем друг другу и делимся опытом
Обучайтесь бесплатно вместе с @byFrontDeveloper
Преобразование шестнадцатеричной строки в RGB
При работе со значениями цвета иногда может быть полезно извлечь отдельные значения красного, зеленого и синего (RGB) компонентов цвета. Реализуйте функцию, отвечающую этим требованиям:
- Принимает в качестве параметра шестнадцатеричную цветовую строку без учета регистра (например, "#FF9933"или "#ff9933") .
- Возвращает объект со структурой {r: 255, g: 153, b: 51}, где r , g и b находятся в диапазоне от 0 до 255.
Примечание: ваша реализация не обязательно должна поддерживать сокращенную форму шестнадцатеричной записи (т.е. "#FFF")
Пример:
"#FF9933" --> {r: 255, g: 153, b: 51}
"#beaded" --> {r:190, g:173, b:237}
"#000000" --> {r:0, g:0, b:0}
#5kyu
🔗 Перейти к задаче
@codewars_js
Извлечь доменное имя из URL-адреса
Напишите функцию, которая при задании URL-адреса в виде строки анализирует только имя домена и возвращает его в виде строки
Пример:
"http://google.com" // "google"
"http://google.co.jp" // "google"
"www.xakep.ru" // "xakep"
"https://youtube.com" // "youtube"
#5kyu
🔗 Перейти к задаче
@codewars_js
Сортировка массива по длине строки
Напишите функцию, которая принимает массив строк в качестве аргумента и возвращает отсортированный массив, содержащий те же строки, отсортированные от самой короткой к самой длинной.
Пример:
["Telescopes", "Glasses", "Eyes", "Monocles"] // ["Eyes", "Glasses", "Monocles", "Telescopes"]
Все строки в массиве, передаваемом в вашу функцию, будут иметь разную длину, поэтому вам не придется решать, как упорядочить несколько строк одинаковой длины
#7kyu
🔗 Перейти к задаче
@codewars_js
Суммирование строк
Создайте функцию, которая принимает на вход два целых числа в виде строки и выводит сумму (также в виде строки):
Пример:
"4", "5" --> "9"
"34", "5" --> "39"
"", "" --> "0"
"2", "" --> "2"
"-5", "3" --> "-2"
Если какой-либо вход представляет собой пустую строку, считайте ее равной нулю
#8kyu
🔗 Перейти к задаче
@codewars_js
Не очень безопасно
В этом примере вам необходимо проверить, является ли строка ввода пользователя буквенно-цифровой
Строка имеет следующие условия, чтобы быть буквенно-цифровой:
- Хотя бы один символ ( ""недопустимо)
- Разрешенными символами являются прописные/строчные латинские буквы и цифры от 0до.9
- Никаких пробелов/подчеркивания
Пример:
alphanumeric("Mazinkaiser") // true
alphanumeric("hello world_") // false
alphanumeric("PassW0rd") // true
alphanumeric(" ") // false
#5kyu
🔗 Перейти к задаче
@codewars_js
Двойной Чар
Учитывая строку, вы должны вернуть строку, в которой каждый символ (с учетом регистра) повторяется один раз
Пример:
"String" -> "SSttrriinngg"
"Hello World" -> "HHeelllloo WWoorrlldd"
"1234!_ " -> "11223344!!__ "
#8kyu
🔗 Перейти к задаче
@codewars_js
Разрушить camelCase
Завершите решение так, чтобы функция разбивала верблюжий регистр, используя пробел между словами.
Пример:
"camelCasing" => "camel Casing"
"identifier" => "identifier"
"" => ""
#6kyu
🔗 Перейти к задаче
@codewars_js
Инвертировать значения
Учитывая набор чисел, верните аддитивную обратную величину каждого из них. Каждое положительное становится отрицательным, а отрицательное становится положительным
Пример:
invert([1,2,3,4,5]) == [-1,-2,-3,-4,-5]
invert([1,-2,3,-4,5]) == [-1,2,-3,4,-5]
invert([]) == []
#8kyu
🔗 Перейти к задаче
@codewars_js
Следующее меньшее число с такими же цифрами
Напишите функцию, которая принимает положительное целое число и возвращает следующее меньшее положительное целое число, содержащее те же цифры
Возврат -1, если не существует меньшего числа, содержащего те же цифры. Также верните -1, если следующее меньшее число с теми же цифрами потребует, чтобы первая цифра была равна нулю
Пример:
nextSmaller(21) == 12
nextSmaller(531) == 513
nextSmaller(9) == -1
nextSmaller(1027) == -1
- Некоторые тесты будут включать очень большие числа
- В тестовых данных используются только положительные целые числа
#4kyu
🔗 Перейти к задаче
@codewars_js
Преобразовать строку PascalCase в Snake_case
Завершите функцию так, чтобы она принимала PascalCase строку и возвращала строку в snake_case нотации. Символы нижнего регистра могут быть числами. Если метод получает на вход число, он должен вернуть строку
Пример:
"TestController" --> "test_controller"
"MoviesAndBooks" --> "movies_and_books"
"App7Test" --> "app7_test"
1 --> "1"
#5kyu
🔗 Перейти к задаче
@codewars_js
Бирамид
Давайте представим, что ваша компания только что наняла вашего друга из колледжа и выплатила вам реферальный бонус. Чтобы отпраздновать это событие, вы ведете свою команду в бар по соседству и используете реферальный бонус, чтобы купить и построить самую большую трехмерную пирамиду из пивных банок, какую только сможете
Пирамида пивных банок возводит в квадрат количество банок на каждом уровне: 1 банка на верхнем уровне, 4 на втором, 9 на следующем, 16, 25...
Завершите функцию beeramid, чтобы получить количество полных уровней пирамиды из пивных банок, которую вы можете построить, учитывая параметры:
ваш реферальный бонус и цена банки пива
Пример:
beeramid(1500, 2); // should === 12
beeramid(5000, 3); // should === 16
#5kyu
🔗 Перейти к задаче
@codewars_js
Единицы и нули
Учитывая массив единиц и нулей, преобразуйте эквивалентное двоичное значение в целое число
Однако массивы могут иметь разную длину, а не ограничиваться только 4
Пример:
[0, 0, 0, 1] ==> 1
[0, 0, 1, 0] ==> 2
[0, 1, 0, 1] ==> 5
#7kyu
🔗 Перейти к задаче
@codewars_js
Удалить восклицательные знаки
Напишите функцию, которая удаляет все восклицательные знаки из заданной строки
Пример:
removeExclamationMarks("Hello World!") // => "Hello World"
#8kyu
🔗 Перейти к задаче
@codewars_js
Найдите уникальную строку
Есть массив строк. Все строки содержат одинаковые буквы, кроме одной. Попробуйте найти его!
Пример:
findUniq([ 'Aa', 'aaa', 'aaaaa', 'BbBb', 'Aaaa', 'AaAaAa', 'a' ]) // => 'BbBb'
findUniq([ 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]) // => 'foo'
Строки могут содержать пробелы. Пробелы не имеют значения, имеют значение только символы, не являющиеся пробелами. Например, строка, содержащая только пробелы, аналогична пустой строке
Гарантируется, что массив содержит более двух строк
#5kyu
🔗 Перейти к задаче
@codewars_js
Перевернутые строки
Завершите решение так, чтобы оно перевернуло переданную в него строку.
Пример:
'world' => 'dlrow'
'word' => 'drow'
#8kyu
🔗 Перейти к задаче
@codewars_js
Подсчет комбинаций изменений
Напишите функцию, которая подсчитывает, сколькими различными способами вы можете разменять определенную сумму денег, учитывая массив номиналов монет. Например, есть 3 способа сдачи на 4, если у вас есть монеты номиналом 1 и 2:
1+1+1+1, 1+1+2, 2+2.
Порядок монет не имеет значения:
1+1+2 == 2+1+1
Также предположим, что у вас бесконечное количество монет.
Ваша функция должна принимать сумму для изменения и массив уникальных номиналов монет
Пример:
countChange(4, [1,2]) // => 3
countChange(10, [5,2,3]) // => 4
countChange(11, [5,7]) // => 0
#4kyu
🔗 Перейти к задаче
@codewars_js
Найдите заблудший номер
Вам дан массив целых чисел нечетной длины , в котором все они одинаковы, за исключением одного единственного числа.
Завершите метод, который принимает такой массив и возвращает это единственное другое число
Пример:
[1, 1, 2] ==> 2
[17, 17, 3, 17, 17, 17, 17] ==> 3
#7kyu
🔗 Перейти к задаче
@codewars_js
Запишите число в развернутом виде
Вам будет дан номер, и вам нужно будет вернуть его в виде строки в расширенной форме
Все числа будут целыми числами больше 0
Пример:
expandedForm(12); // '10 + 2'
expandedForm(42); // '40 + 2'
expandedForm(70304); // '70000 + 300 + 4'
#6kyu
🔗 Перейти к задаче
@codewars_js