Взлом замка
Сложность: Средняя
Условие задачи: даётся замок, состоящий из четырёх вращающихся дисков, на каждом из которых имеется 10 цифр: от 0 до 9. При этом за раз можно перемещать только одно колесо и на одно значение.
Изначально замок находится на значении «0000».
На вход подаётся список блокирующих комбинаций, то есть таких четвёрок цифр, при которых открыть механизм не представляешься возможным.
Помимо этого даётся шифр открывающий замок, необходимо вычислить наименьшее число перемещений дисков механизма для открытия замка.
Пример:
Ввод: deadends = ["0201","0101","0102","1212","2002"], target = "0202"
Вывод: 6
Объяснение: последовательность, открывающая замок: "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202".
Решение задачи
Сложность: Средняя
Условие задачи: даётся замок, состоящий из четырёх вращающихся дисков, на каждом из которых имеется 10 цифр: от 0 до 9. При этом за раз можно перемещать только одно колесо и на одно значение.
Изначально замок находится на значении «0000».
На вход подаётся список блокирующих комбинаций, то есть таких четвёрок цифр, при которых открыть механизм не представляешься возможным.
Помимо этого даётся шифр открывающий замок, необходимо вычислить наименьшее число перемещений дисков механизма для открытия замка.
Пример:
Ввод: deadends = ["0201","0101","0102","1212","2002"], target = "0202"
Вывод: 6
Объяснение: последовательность, открывающая замок: "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202".
Решение задачи
👍7
Проверка схожести половин строки
Сложность: Лёгкая
Условие задачи: на вход подается строка четной длины. Далее проводится разделение на две равные части.
Две строки называются схожими, если в них находится одно и то же количество гласных вне зависимости от регистра.
Необходимо проверить схожесть двух строк, полученных разбиением по середине.
Пример:
Ввод: s = "book"
Вывод: true
Решение задачи
Сложность: Лёгкая
Условие задачи: на вход подается строка четной длины. Далее проводится разделение на две равные части.
Две строки называются схожими, если в них находится одно и то же количество гласных вне зависимости от регистра.
Необходимо проверить схожесть двух строк, полученных разбиением по середине.
Пример:
Ввод: s = "book"
Вывод: true
Решение задачи
👍4❤1
Друзья, смотрите ли вы чемпионат мира по футболу, который проходит сейчас в Катаре? Если да, пишите в комменты за кого болеете
Anonymous Poll
30%
Смотрю
70%
Какой нафиг футбол, мы же прогеры
🤔5🔥2
Форматирование
Сложность: Лёгкая
Условие задачи: дается номер водительского удостоверения, представленный строкой. Символы в номере могут быть разбиты на n+1 групп. Также дается число k.
Необходимо преобразовать номер в строку по k-символов. Однако лишь первая группа может быть меньше, чем k-символов. Помимо этого все символы нижнего регистра необходимо изменить на верхний регистр.
Пример:
Ввод: s = "5F3Z-2e-9-w", k = 4
Вывод: "5F3Z-2E9W"
Объяснение:
Ввод: s = "2-5g-3-J", k = 2
Вывод: s = "2-5g-3-J", k = 2
Решение задачи
Сложность: Лёгкая
Условие задачи: дается номер водительского удостоверения, представленный строкой. Символы в номере могут быть разбиты на n+1 групп. Также дается число k.
Необходимо преобразовать номер в строку по k-символов. Однако лишь первая группа может быть меньше, чем k-символов. Помимо этого все символы нижнего регистра необходимо изменить на верхний регистр.
Пример:
Ввод: s = "5F3Z-2e-9-w", k = 4
Вывод: "5F3Z-2E9W"
Объяснение:
Ввод: s = "2-5g-3-J", k = 2
Вывод: s = "2-5g-3-J", k = 2
Решение задачи
👍6🔥1
Окружение регионов
Сложность: Средняя
Условие задачи: на вход подаётся матрица, состоящая из «Х» и «0». Необходимо определить все регионы, которые окружены «Х» со всех сторон.
Пример:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: на вход подаётся матрица, состоящая из «Х» и «0». Необходимо определить все регионы, которые окружены «Х» со всех сторон.
Пример:
Ввод:
board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]Вывод:
[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]Решение задачи
👍5🤔5
Петля в связном списке II
Сложность: Средняя
Условие задачи: дан связный список, необходимо вернуть позицию элемента, с которого начинается цикл, если же цикл отсутствует, то надо вернуть null.
Пример:
Ввод:
Вывод: последний элемент зацикливается на элементе с индексом
* соответствующий список проиллюстрирован на картинке.
Решение задачи
Сложность: Средняя
Условие задачи: дан связный список, необходимо вернуть позицию элемента, с которого начинается цикл, если же цикл отсутствует, то надо вернуть null.
Пример:
Ввод:
head = [3,2,0,-4], pos = 1Вывод: последний элемент зацикливается на элементе с индексом
1*. * соответствующий список проиллюстрирован на картинке.
Решение задачи
🤔6👍4
Минимальная средняя разница
Сложность: Средняя
Условие задачи: дается массив из целых чисел.
Средняя разница в индексе i - это абсолютная разница между средним первых i + 1 элементов и последних n - i - 1. Оба средних долдны быть округлены до ближайшего целого в меньшую сторону.
Необходимо вычислить индекс с минимальным средним, которое удовлетворяет заданным условиям. ЕСли таких индексов несколько - вернуть надо наименьший.
Пример:
Ввод: nums = [2,5,3,9,5,3]
Вывод: 3
Объяснение: *click
Решение задачи
Сложность: Средняя
Условие задачи: дается массив из целых чисел.
Средняя разница в индексе i - это абсолютная разница между средним первых i + 1 элементов и последних n - i - 1. Оба средних долдны быть округлены до ближайшего целого в меньшую сторону.
Необходимо вычислить индекс с минимальным средним, которое удовлетворяет заданным условиям. ЕСли таких индексов несколько - вернуть надо наименьший.
Пример:
Ввод: nums = [2,5,3,9,5,3]
Вывод: 3
Объяснение: *click
Решение задачи
👍1
Сортировка символов по частоте
Сложность: Средняя
Условие задачи: дается строка, необходимо преобразовать данную строку к виду строки по убыванию частоты конкретного символа.
Пример:
Ввод: s = "tree"
Вывод: "eert"
Объяснение:
Ввод: s = "cccaaa"
Вывод:"aaaccc"
Решение задачи
Сложность: Средняя
Условие задачи: дается строка, необходимо преобразовать данную строку к виду строки по убыванию частоты конкретного символа.
Пример:
Ввод: s = "tree"
Вывод: "eert"
Объяснение:
Ввод: s = "cccaaa"
Вывод:"aaaccc"
Решение задачи
👍2
Максимальное количество единиц
Сложность: Лёгкая
Условие задачи: дается бинарный массив (состоит только из 0 и 1). Необходимо вычислить максимальную длину подмассива, в котором присутствуют только 1.
Пример:
Ввод: nums = [1,1,0,1,1,1]
Вывод: 3
Решение задачи
Сложность: Лёгкая
Условие задачи: дается бинарный массив (состоит только из 0 и 1). Необходимо вычислить максимальную длину подмассива, в котором присутствуют только 1.
Пример:
Ввод: nums = [1,1,0,1,1,1]
Вывод: 3
Решение задачи
👍9
Бинарный часы
Сложность: Лёгкая
Условие задачи: часы имеют два дисплея: верхний состоит из 4х слотов, в которых отображаются часы, а также имеется 6 нижних слотов, ответственных за минуты. Каждый слот можно представить нулем или единицей (горит цифра в слоте или же нет).
На вход подается количество включенных слотов, необходимо вывести всевозможные комбинации времени, которые можно получить при таком количестве вклченных слотов.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод: [ ]
Решение задачи
Сложность: Лёгкая
Условие задачи: часы имеют два дисплея: верхний состоит из 4х слотов, в которых отображаются часы, а также имеется 6 нижних слотов, ответственных за минуты. Каждый слот можно представить нулем или единицей (горит цифра в слоте или же нет).
На вход подается количество включенных слотов, необходимо вывести всевозможные комбинации времени, которые можно получить при таком количестве вклченных слотов.
Пример:
Ввод:
turnedOn = 1Вывод:
["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]Объяснение:
Ввод:
turnedOn = 9Вывод: [ ]
Решение задачи
👍9🔥1
Конструирование прямоугольника
Сложность: Лёгкая
Условие задачи: web-разработчикам необходимо знать размеры окна создаваемого приложения. Дается специальная прямоугольная рамка, имеющая размеры L (длина) и W (ширина). На данные габариты накладываются определенные условия:
- площадь прямоугольника, разрабатываемого нами окна, должна быть меньше или равна целевому значению;
- ширина должна быть не больше длины;
- разница между длинной и шириной должна быть минимальной.
Необходимо вычислить пару длины и ширины, удовлетворяющих вышеуказанным условиям.
Пример:
Ввод: area = 4
Вывод: [2,2]
Объяснение:
Ввод: area = 122122
Вывод: [427,286]
Решение задачи
Сложность: Лёгкая
Условие задачи: web-разработчикам необходимо знать размеры окна создаваемого приложения. Дается специальная прямоугольная рамка, имеющая размеры L (длина) и W (ширина). На данные габариты накладываются определенные условия:
- площадь прямоугольника, разрабатываемого нами окна, должна быть меньше или равна целевому значению;
- ширина должна быть не больше длины;
- разница между длинной и шириной должна быть минимальной.
Необходимо вычислить пару длины и ширины, удовлетворяющих вышеуказанным условиям.
Пример:
Ввод: area = 4
Вывод: [2,2]
Объяснение:
Ввод: area = 122122
Вывод: [427,286]
Решение задачи
👍5
Матрица 01
Сложность: Средняя
Условие задачи: дается бинарная матрица (состоит только из 0 и 1). Необходимо вернуть матрицу, в которой будет отображаться расстояние от каждой единичной клетки до ближайшей нулевой.
Пример:
Ввод: mat = [[0,0,0],[0,1,0],[0,0,0]]
Вывод: [[0,0,0],[0,1,0],[0,0,0]]
Объяснение: *во вложении
Ввод: mat = [[0,0,0],[0,1,0],[1,1,1]]
Вывод: [[0,0,0],[0,1,0],[1,2,1]]
Решение задачи
Сложность: Средняя
Условие задачи: дается бинарная матрица (состоит только из 0 и 1). Необходимо вернуть матрицу, в которой будет отображаться расстояние от каждой единичной клетки до ближайшей нулевой.
Пример:
Ввод: mat = [[0,0,0],[0,1,0],[0,0,0]]
Вывод: [[0,0,0],[0,1,0],[0,0,0]]
Объяснение: *во вложении
Ввод: mat = [[0,0,0],[0,1,0],[1,1,1]]
Вывод: [[0,0,0],[0,1,0],[1,2,1]]
Решение задачи
👍3
Сумма на отрезке
Сложность: Лёгкая
Условие задачи: дается бинарное дерево поиска, дается два числа low и high, необходимо посчитать сумму узлов дерева, находящихся в пределах данного отрезка [low, high].
Пример:
Ввод: root = [10,5,15,3,7,null,18], low = 7, high = 15
Вывод: 32
Объяснение: в данный отрезок входят числа 7, 10, 15.
Решение задачи
Сложность: Лёгкая
Условие задачи: дается бинарное дерево поиска, дается два числа low и high, необходимо посчитать сумму узлов дерева, находящихся в пределах данного отрезка [low, high].
Пример:
Ввод: root = [10,5,15,3,7,null,18], low = 7, high = 15
Вывод: 32
Объяснение: в данный отрезок входят числа 7, 10, 15.
Решение задачи
👍6
Все дороги в цель
Сложность: Средняя
Условие задачи: дается направленный ациклический граф, состоящий из n-узлов, пронумерованных от 0 до n-1. Необходимо вывести все пути из начала в конечный узел.
Пример:
Ввод: graph = [[1,2],[3],[3],[]]
Вывод: [[0,1,3],[0,2,3]]
Объяснение: пути: 0 -> 1 -> 3 и 0 -> 2 -> 3.
Ввод: graph = [[4,3,1],[3,2,4],[3],[4],[]]
Вывод: [[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
Решение задачи
Сложность: Средняя
Условие задачи: дается направленный ациклический граф, состоящий из n-узлов, пронумерованных от 0 до n-1. Необходимо вывести все пути из начала в конечный узел.
Пример:
Ввод: graph = [[1,2],[3],[3],[]]
Вывод: [[0,1,3],[0,2,3]]
Объяснение: пути: 0 -> 1 -> 3 и 0 -> 2 -> 3.
Ввод: graph = [[4,3,1],[3,2,4],[3],[4],[]]
Вывод: [[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
Решение задачи
👍2❤1
Схожие деревья
Сложность: Лёгкая
Условие задачи: необходимо рассмотреть конечные листья бинарного дерева слева направо, а точнее их значения.
Два дерева считаются схожими по последним потомкам в случае если последовательность последних потомков и в первом и во втором деревьях идентична.
Пример:
Ввод: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Вывод: true
Объяснение: *во вложении
Решение задачи
Сложность: Лёгкая
Условие задачи: необходимо рассмотреть конечные листья бинарного дерева слева направо, а точнее их значения.
Два дерева считаются схожими по последним потомкам в случае если последовательность последних потомков и в первом и во втором деревьях идентична.
Пример:
Ввод: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Вывод: true
Объяснение: *во вложении
Решение задачи
👍2
Возможное дробление
Сложность: Средняя
Условие задачи: необходимо разделить группу из n-человек в две группы произвольного размера или же определить невозможность такого разделения. Каждый человек из группы может недолюбливать кого-то другого. Именно поэтому не стоит размещать их в одной групп.
На вход подается список неприязни каждого человека.
Пример:
Ввод: n = 4, dislikes = [[1,2],[1,3],[2,4]]
Вывод: true
Объяснение:
Ввод: n = 3, dislikes = [[1,2],[1,3],[2,3]]
Вывод: false
Решение задачи
Сложность: Средняя
Условие задачи: необходимо разделить группу из n-человек в две группы произвольного размера или же определить невозможность такого разделения. Каждый человек из группы может недолюбливать кого-то другого. Именно поэтому не стоит размещать их в одной групп.
На вход подается список неприязни каждого человека.
Пример:
Ввод: n = 4, dislikes = [[1,2],[1,3],[2,4]]
Вывод: true
Объяснение:
Ввод: n = 3, dislikes = [[1,2],[1,3],[2,3]]
Вывод: false
Решение задачи
👍2