JavaScript test
10.6K subscribers
3.03K photos
6 videos
4.14K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/js_test

РКН: clck.ru/3KHeYk
Download Telegram
Задача: дано игровое поле, которое задано матрицей m x n, где каждая ячейка представляет собой клетку корабля «X» или пустую клетку «.».

Необходимо найти количество всех кораблей на игровом поле.

Примечание: корабли можно размещать на игровом поле только горизонтально или вертикально. Также по крайней мере, 1 горизонтальная или вертикальная клетка разделяет два корабля.

Входные данные: board — символьная матрица, содержащая символы ‘.’, ‘X’. Размер сторон матрицы от 1 до 100.

Вывод: количество всех кораблей

Пример:

Board = [

[‘X’, ‘.’, ‘.’, ‘X’],

[‘.’, ‘.’, ‘.’, ‘X’],

[‘.’, ‘.’, ‘.’, ‘X’]]

Output: 2

Ответ - https://telegra.ph/Answer-11-04-2
Задача: дано натуральное число, необходимо преобразовать его в римскую запись.

Римские цифры представлены семью разными символами:

I - 1,
V - 5,
X - 10,
L - 50,
C - 100,
D - 500,
M - 1000

Справка: римские цифры обычно пишутся от наибольшего к наименьшему слева направо. Однако цифра четыре - это не IIII. Вместо этого число четыре записывается как IV. Поскольку единица стоит перед пятью, мы вычитаем ее и получаем четыре. Тот же принцип применяется к числу девять, которое записывается как IX. Вычитание используется в шести случаях:

- I можно поставить перед V (5) и X (10), чтобы получилось 4 и 9.
- X можно поставить перед L (50) и C (100), чтобы получилось 40 и 90.
- C можно поставить перед D (500) и M (1000), чтобы получилось 400 и 900.

Входные данные: n - натуральное число от 1 до 3000.

Вывод: римская запись числа n.

Ответ - https://telegra.ph/Answer-11-04-3
Задача: В киоске стакан кваса стоит 5 рублей. Дети стоят в очереди, чтобы купить у вас, и заказывают по одному по порядку. Каждый клиент купит только один стакан кваса и заплатит купюрой по 5, 10 или 20 рублей. Вы же должны дать сдачу каждому клиенту. Сначала у вас нет сдачи.
Необходимо определить сможете ли вы продать квас каждому клиенту!

Входные данные: bills - массив купюр, которые платит iй ребенок в очереди.

Вывод: true - если вы сможете расчитать каждого клиента, false - в противном случае.

Примеры:

[5, 5, 10, 10, 20]
Output: false

- первым 2м клиентам вы продадите квас, не давая сдачи, у вас будет 2 купюры по 5 рублей.

- следующим 2м клиентам вы дадите сдачу оставшимися купюрами в 5 рублей. У вас останется только 2 купюры по 10 рублей.

- последнему клиенту вы не сможете дать сдачу в 15 рублей.

Ответ - https://telegra.ph/Answer-11-15-2
Задача: Даны N комнат, все комнаты заперты, кроме первой. Нельзя войти в запертую комнату без ключа.

Однако когда вы заходите в комнату, вы можете найти в ней набор разных ключей. На каждом ключе есть номер, обозначающий, какую комнату он открывает. Можно использовать эти ключи, чтобы разблокировать следующие комнаты.

Необходимо проверить можно ли посетить все комнаты.

Входные данные: rooms[] - масств, где rooms[i] - набор ключей, которые вы можете получить, посетив комнату i. Нумерация комнат и ключей начинается с 0.

Вывод: true - если вы можете посетить все комнаты, false в противном случае.

Ответ - https://telegra.ph/Answer-11-26-2
Задача: Дана закодированная строка, необходимо вернить ее декодированную строку.

Правило кодирования: k [закодированная_строка], где закодированная_строка в квадратных скобках повторяется ровно k раз. k - строго положительное число.

Входные данные: входная строка валидна: нет лишних пробелов, правильные квадратные скобки. Также, полностью раскодированная строка не содержит цифр.

Вывод: расшифрованная строка.

Ответ - https://telegra.ph/Answer-12-01-3
Задача: цифровой корень натурального числа — это цифра, полученная в результате итеративного процесса суммирования цифр, на каждой итерации которого для подсчета суммы цифр берут результат, полученный на предыдущей итерации. Этот процесс повторяется до тех пор, пока не будет получена одна цифра.

Необходимо составить программу нахождения цифрового корня натурального числа.

Входные данные: N - натуральное число, где 0 <= N <= 10^9

Вывод: цифровой корень числа N

Ответ - https://telegra.ph/Answer-12-27-9
Задача: трансформировать строку по таким правилам:

1) Изменить регистр каждого символа, т.е. нижний регистр в верхний регистр, верхний регистр в нижний регистр. (например 'FizzBuzz'--> 'fIZZbUZZ');
2) Изменить порядок слов на обратный ( например 'pen pinapple apple PEN' --> 'pen APPLE PINAPPLE PEN').

Важно! Количество пробелов должно быть сохраненно.
Например, для строки 'js css html'
'HTML CSS JS' - неправильный вариант
'HTML CSS JS' - правильный вариант

Входные данные: строка, которая состоит из букв английского алфавита и пробелов.

Выходные данные: трансформированая строка.

Ответ - https://telegra.ph/Answer-01-07
Входные данные:
32-bit signed integer number

Выходные данные:
number с перевернутыми цифрами(строкой), либо '0'

Важно! Если изменение number приводит к тому, что значение выходит за пределы интервала [-2^31, 2^31 - 1], нужно вернуть '0'

Ответ - https://telegra.ph/Answer-01-17-6
Напишите функцию humanReadable, которая принимает неотрицательное целое число (секунды) в качестве входных данных и возвращает время в удобочитаемом формате (ЧЧ:ММ:СС)

ЧЧ = часы, дополненные до 2 цифр, диапазон: 00–99
ММ = минуты, дополненные до 2 цифр, диапазон: 00–59
SS = секунды, дополненные двумя цифрами, диапазон: 00–59

Минимальное значение seconds = 0 (00:00:00)
Максимальное значение seconds = 359999 (99:59:59)

Ответ - https://telegra.ph/Answer-01-24-5
Реализуйте функцию isTwinPrime, которая возвращает true, если
1. number - является простым числом
2. number+2 или number-2 - как минимум одно из этих чисел является простым.
Если хоть одно условие не выполняется, возвращать false.

Например, возьмем число 7.
1. 7 - простое число.
2. 7+2 = 9, 7-2 = 5. 5 простое число
Ответ: true

Ответ - https://telegra.ph/Answer-01-24-6
Напишите функцию persistence, которая принимает положительный параметр num и возвращает его мультипликативную величину, то есть количество раз, которое вы должны умножить на num, пока не получите одну цифру.

Пример:
39 --> 3 (3*9 = 27, 2*7 = 14, 1*4 = 4 . 4 состоит из одной цифры, чтобы дойти до четвёрки мы сделали 3 итерации. )

Ответ - https://telegra.ph/Answer-02-02-14
Нестареющая классика

Напишите программу, которая выводит на экран числа от 1 до num. При этом вместо чисел, кратных трем, программа должна выводить слово «fizz», а вместо чисел, кратных пяти — слово «buzz». Если число кратно и 3, и 5, то программа должна выводить слово «fizzbuzz» .

Входные параметры : num - целое число, num > 1

Ну что, свело олдскулы?

Ответ - https://telegra.ph/Answer-02-09
Это чистая функция? Если да/нет - объясните почему.

Ответ - https://telegra.ph/Answer-02-25
Что выведет код?

Ответ - https://telegra.ph/Answer-03-04
Что выведет в консоль?

Ответ - https://telegra.ph/Answer-03-09-6
Что выведет в консоль? Объясните почему.

Ответ - https://telegra.ph/Answer-03-13-2
Что выведет в консоль?

Ответ - https://telegra.ph/Answer-03-25
Чем является функция someFunc?

1) Замыканием.
2) Чистой функцией.
3) Функцией высшего порядка.
4) Функцией низшего порядка.

Ответ - https://telegra.ph/Answer-03-28-2
Что выведет в консоль?

Ответ - https://telegra.ph/Answer-04-08
Что выведет в консоль?

Ответ - https://telegra.ph/Answer-04-10
Напишите функцию numberOfPeopleInTheBus, которая возвращает количество людей в автобусе которые остались после последней остановки. Функция принимает двумерный массив в котором описано что произошло на каждой из остановок, в каждом из внутренних массивов лежит два значения, первое - это количество людей которые сели в автобус а второе - это количество людей которые из него вышли.

Ответ - https://telegra.ph/Answer-04-13-3