Строки отличающиеся на один символ
Сложность задачи: Средняя
Условие задачи:
Дан список строк dict, где все строки имеют одинаковую длину.
Верните true, если в одном и том же индексе есть 2 строки, которые отличаются только на 1 символ, в противном случае возвращает false.
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан список строк dict, где все строки имеют одинаковую длину.
Верните true, если в одном и том же индексе есть 2 строки, которые отличаются только на 1 символ, в противном случае возвращает false.
Пример:
Ввод:
dict = ["abcd","acbd", "aacd"]
Вывод: true
Объяснение: Строки "abcd" и "aacd" отличаются только одним символом в индексе 1.Ввод:
dict = ["ab","cd","yz"]
Вывод: false
Решение задачи👍9
Одно редактирование
Сложность задачи: Средняя
Условие задачи:
Даны две строки s и t. Требуется вернуть true, если обе они находятся на расстоянии редактирования друг от друга, в противном случае вернуть false.
Говорят, что строка s находится на расстоянии редактирования от строки t, если вы можете:
• Вставить ровно один символ в s, чтобы получить t.
• Удалить ровно один символ из s, чтобы получить t.
• Заменить ровно один символ s другим символом, чтобы получить t.
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Даны две строки s и t. Требуется вернуть true, если обе они находятся на расстоянии редактирования друг от друга, в противном случае вернуть false.
Говорят, что строка s находится на расстоянии редактирования от строки t, если вы можете:
• Вставить ровно один символ в s, чтобы получить t.
• Удалить ровно один символ из s, чтобы получить t.
• Заменить ровно один символ s другим символом, чтобы получить t.
Пример:
Ввод:
s = "ab", t = "acb"
Вывод: true
Объяснение: Мы можем вставить 'c' в s, чтобы получить t.Ввод:
s = "", t = ""
Вывод: false
Решение задачи👍10
Целое число английскими словами
Сложность задачи: Трудная
Условие задачи:
Преобразуйте неотрицательное целое число num в его представление английскими словами.
Пример:
Ввод:
Сложность задачи: Трудная
Условие задачи:
Преобразуйте неотрицательное целое число num в его представление английскими словами.
Пример:
Ввод:
num = 123
Вывод: "One Hundred Twenty Three"
Ввод: num = 12345
Вывод: "Twelve Thousand Three Hundred Forty Five"
Решение задачи👍15🤔2👎1
То же дерево
Сложность задачи:
Низкая
Условие:
Получив корни двух бинарных деревьев p и q, напишите функцию, проверяющую, совпадают ли они.
Два бинарных дерева считаются одинаковыми, если они структурно идентичны, а узлы имеют одинаковое значение.
Примеры (картинки по порядку):
Ввод: p = [1,2,3], q = [1,2,3]
Вывод: true
Ввод: p = [1,2], q = [1,null,2]
Вывод: false
Ввод: p = [1,2,1], q = [1,1,2]
Вывод: false
Ограничения:
Количество узлов в обоих деревьях находится в диапазоне [0, 100].
Решение задачи
Сложность задачи:
Низкая
Условие:
Получив корни двух бинарных деревьев p и q, напишите функцию, проверяющую, совпадают ли они.
Два бинарных дерева считаются одинаковыми, если они структурно идентичны, а узлы имеют одинаковое значение.
Примеры (картинки по порядку):
Ввод: p = [1,2,3], q = [1,2,3]
Вывод: true
Ввод: p = [1,2], q = [1,null,2]
Вывод: false
Ввод: p = [1,2,1], q = [1,1,2]
Вывод: false
Ограничения:
Количество узлов в обоих деревьях находится в диапазоне [0, 100].
Решение задачи
👍7
Pow(x, n)
Сложность задачи: Средняя
Условие задачи:
Реализуйте функцию pow(x, n), которая вычисляет x в степени n (т. е. x^n).
Пример:
Ввод: x = 2.00000, n = 10
Вывод:
-100.0 < x < 100.0
-231 <= n <= 231-1
-104 <= x^n <= 104
Решение задачи
Сложность задачи: Средняя
Условие задачи:
Реализуйте функцию pow(x, n), которая вычисляет x в степени n (т. е. x^n).
Пример:
Ввод: x = 2.00000, n = 10
Вывод:
1024.00000
Ввод: x = 2.10000, n = 3
Вывод: 9.26100
Диапазон данных:-100.0 < x < 100.0
-231 <= n <= 231-1
-104 <= x^n <= 104
Решение задачи
👍12🤔2
Jump Game II
Сложность задачи: средняя
Условие:
Получив массив неотрицательных целых чисел nums, вы изначально позиционируетесь в первом индексе массива. Каждый элемент массива представляет максимальную длину прыжка в этой позиции. Ваша цель - достичь последнего индекса за минимальное количество прыжков. Вы можете предположить, что вы всегда можете добраться до последнего индекса.
Примеры:
Ввод: nums = [2,3,1,1,4]
Вывод: 2
Объяснение: Минимальное количество переходов для достижения последнего индекса равно 2. Перейти на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [2,3,0,1,4]
Вывод: 2
Решение задачи
Сложность задачи: средняя
Условие:
Получив массив неотрицательных целых чисел nums, вы изначально позиционируетесь в первом индексе массива. Каждый элемент массива представляет максимальную длину прыжка в этой позиции. Ваша цель - достичь последнего индекса за минимальное количество прыжков. Вы можете предположить, что вы всегда можете добраться до последнего индекса.
Примеры:
Ввод: nums = [2,3,1,1,4]
Вывод: 2
Объяснение: Минимальное количество переходов для достижения последнего индекса равно 2. Перейти на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [2,3,0,1,4]
Вывод: 2
Решение задачи
👍8👎2
Друзья, мы решили запустить соревнование по решению задачек с нашего любимого с вами сайта Leetcode.
В чем заключается суть состязания.
После выхода задачки на канале, у каждого из вас есть ровно 3 дня, чтобы попытаться сдать эту самую задачу на сайте, после чего прислать в комментарии результат проверки. Чем лучше будет ваш результат, тем больше баллов вы получите. Над системой получения баллов мы еще думаем, поэтому если у вас есть предложения, будем рады их видеть в комментариях.
В чем заключается суть состязания.
После выхода задачки на канале, у каждого из вас есть ровно 3 дня, чтобы попытаться сдать эту самую задачу на сайте, после чего прислать в комментарии результат проверки. Чем лучше будет ваш результат, тем больше баллов вы получите. Над системой получения баллов мы еще думаем, поэтому если у вас есть предложения, будем рады их видеть в комментариях.
👍31
Перестановки
Сложность задачи: Средняя
Условие задачи:
Дан массив nums различных целых чисел. Требуется вернуть все возможные перестановки. Вы можете вернуть ответ в любом порядке.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан массив nums различных целых чисел. Требуется вернуть все возможные перестановки. Вы можете вернуть ответ в любом порядке.
Пример:
Ввод:
nums = [1,2,3]
Вывод: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Ввод: nums = [0,1]
Вывод: [[0,1],[1,0]]
Решение задачи👍10
Doodle Jump
Сложность задачи: Средняя
Условие задачи:
Вам дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Вам дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод:
nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.Ввод:
nums = [3,2,1,0,4]
Вывод: false
Решение задачи👍9
Палиндромная перестановка II
Сложность задачи: Средняя
Условие задачи:
Дана строка s. Требуется вернуть все ее палиндромные перестановки (без дубликатов).
Вы можете вернуть ответ в любом порядке. Если s не имеет палиндромной перестановки, вернуть пустой список.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дана строка s. Требуется вернуть все ее палиндромные перестановки (без дубликатов).
Вы можете вернуть ответ в любом порядке. Если s не имеет палиндромной перестановки, вернуть пустой список.
Пример:
Ввод:
s = "aabb"
Вывод: ["abba","baab"]
Ввод: s = "abc"
Вывод: []
Решение задачи👍7🤔1
Валидный судоку
Сложность: средняя
Условие:
Определите, валидна ли доска судоку 9 x 9. Только заполненные ячейки должны быть проверены в соответствии со следующими правилами:
1. Каждая строка должна содержать цифры 1–9 без повторения.
2. Каждый столбец должен содержать цифры 1–9 без повторения.
3. Каждый из девяти подблоков сетки 3 x 3 должен содержать цифры 1–9 без повторения.
Доска судоку (частично заполненная) может быть валидной, но не обязательно решаемой. Только заполненные ячейки должны быть проверены в соответствии с указанными правилами.
Примеры:
Пример 1 (на картинке):
Ввод: board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Вывод: true
Пример 2:
Ввод: board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Вывод: false
Объяснение: то же, что и в примере 1, за исключением того, что цифра 5 в верхнем левом углу изменена на 8. Поскольку в верхнем левом подблоке 3x3 есть две восьмерки, это неверно.
Решение задачи
Сложность: средняя
Условие:
Определите, валидна ли доска судоку 9 x 9. Только заполненные ячейки должны быть проверены в соответствии со следующими правилами:
1. Каждая строка должна содержать цифры 1–9 без повторения.
2. Каждый столбец должен содержать цифры 1–9 без повторения.
3. Каждый из девяти подблоков сетки 3 x 3 должен содержать цифры 1–9 без повторения.
Доска судоку (частично заполненная) может быть валидной, но не обязательно решаемой. Только заполненные ячейки должны быть проверены в соответствии с указанными правилами.
Примеры:
Пример 1 (на картинке):
Ввод: board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Вывод: true
Пример 2:
Ввод: board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Вывод: false
Объяснение: то же, что и в примере 1, за исключением того, что цифра 5 в верхнем левом углу изменена на 8. Поскольку в верхнем левом подблоке 3x3 есть две восьмерки, это неверно.
Решение задачи
👍17👎1
Объединение интервалов
Сложность задачи: Средняя
Условие задачи:
Дан массив интервалов, где intervals[i] = [start(i), end(i)]. Требуется объединить все перекрывающиеся интервалы и вернуть массив непересекающихся интервалов, которые охватывают все интервалы во входных данных.
Пример:
Ввод:
Ввод: intervals =
Сложность задачи: Средняя
Условие задачи:
Дан массив интервалов, где intervals[i] = [start(i), end(i)]. Требуется объединить все перекрывающиеся интервалы и вернуть массив непересекающихся интервалов, которые охватывают все интервалы во входных данных.
Пример:
Ввод:
intervals = [[1,3],[2,6],[8,10],[15,18]]
Вывод: [[1,6],[8,10],[15,18]]
Объяснение: Поскольку интервалы [1,3] и [2,6] перекрываются, объединим их в [1,6].Ввод: intervals =
[[1,4],[4,5]]
Вывод: [[1,5]]
Решение задачи👍12
Размещение предложения на экране
Сложность задачи: Средняя
Условие задачи:
Дан экран rows x cols и предложение, представленное в виде списка строк. Требуется вернуть количество раз, которое данное предложение может быть размещено на экране.
Порядок слов в предложении должен оставаться неизменным, а слово не может быть разбито на две строки. Один пробел должен разделять два последовательных слова в строке.
Пример:
Ввод:
hello---
world---
Символ «-» означает пустое место на экране.
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан экран rows x cols и предложение, представленное в виде списка строк. Требуется вернуть количество раз, которое данное предложение может быть размещено на экране.
Порядок слов в предложении должен оставаться неизменным, а слово не может быть разбито на две строки. Один пробел должен разделять два последовательных слова в строке.
Пример:
Ввод:
sentence = ["hello","world"], rows = 2, cols = 8
Вывод: 1
Объяснение: hello---
world---
Символ «-» означает пустое место на экране.
Ввод:
sentence = ["a", "bcd", "e"], rows = 3, cols = 6
Вывод: 2
Решение задачи👍8
Уникальные тропы
Сложность задачи: Средняя.
Условие задачи: дано поле размером m x n. Изначально робот находится в левом верхнем углу. Необходимо посчитать сколькими возможными уникальными путями робот может добраться в правый нижний угол.
Робот может двигаться лишь вправо и вниз.
Пример:
Ввод: m = 3, n = 7
Вывод: 28.
Решение задачи
Сложность задачи: Средняя.
Условие задачи: дано поле размером m x n. Изначально робот находится в левом верхнем углу. Необходимо посчитать сколькими возможными уникальными путями робот может добраться в правый нижний угол.
Робот может двигаться лишь вправо и вниз.
Пример:
Ввод: m = 3, n = 7
Вывод: 28.
Решение задачи
👍12
Наиболее эффективное поднятие по ступеням
Сложность задачи: Лёгкая.
Условие задачи: дан целочисленный массив cost, где cost[i] - вес i-ой ступеньки. Находясь на ступени, можно шагнуть либо на следующую либо через одну.
Начинать путь можно либо со ступени с индексом 0 либо с индексом 1.
Задача - пройти всю лестницу с минумальной суммой весов ступеней.
Пример:
Ввод:
Вывод: 15
Ввод:
Вывод: 6
Решение задачи
Сложность задачи: Лёгкая.
Условие задачи: дан целочисленный массив cost, где cost[i] - вес i-ой ступеньки. Находясь на ступени, можно шагнуть либо на следующую либо через одну.
Начинать путь можно либо со ступени с индексом 0 либо с индексом 1.
Задача - пройти всю лестницу с минумальной суммой весов ступеней.
Пример:
Ввод:
cost = [10,15,20]Вывод: 15
Ввод:
cost = [1,100,1,1,1,100,1,1,100,1]Вывод: 6
Решение задачи
👍7
Топ k наиболее часто встречающихся элементов
Сложность: Средняя
Условие задачи: дан целочисленный массив и целое число k. Необходимо вернуть k часто встречающихся элементов. Порядок чисел в ответе не имеет значения.
Гарантируется, что ответ уникальный. То есть несколько элементов не могут встречаться одинаковое количество раз.
Пример:
Ввод:
Ввод:
Решение задачи
Сложность: Средняя
Условие задачи: дан целочисленный массив и целое число k. Необходимо вернуть k часто встречающихся элементов. Порядок чисел в ответе не имеет значения.
Гарантируется, что ответ уникальный. То есть несколько элементов не могут встречаться одинаковое количество раз.
Пример:
Ввод:
nums = [1,1,1,2,2,3], k = 2
Вывод: [1,2]Ввод:
nums = [1], k = 1
Вывод: [1]Решение задачи
👍6👎1
Является ли строка палиндромом
Сложность: Лёгкая
Условие: палиндромом является фраза, которая после перевода в нижний регистр всех символов, а также удаления всех знаков препинания, читается одинаково как слева направо, так и справа налево.
Задача - вернуть true, если строка палиндром, false - в противном случае.
Пример:
Ввод:
Ввод:
Ввод:
Решение задачи
Сложность: Лёгкая
Условие: палиндромом является фраза, которая после перевода в нижний регистр всех символов, а также удаления всех знаков препинания, читается одинаково как слева направо, так и справа налево.
Задача - вернуть true, если строка палиндром, false - в противном случае.
Пример:
Ввод:
s = "A man, a plan, a canal: Panama"
Вывод: true
Объяснение: "amanaplanacanalpanama" является палиндромом.Ввод:
s = "race a car"
Вывод: false
Объяснение: "raceacar" не является палиндромом.Ввод:
s = " "
Вывод: true
Объяснение: s - пустая строка "" после удаления всех знаков препинания и пробелов.
Так как пустая строка читается одинаково в обоих направлениях, то она является палиндромом.Решение задачи
👍7
Сумма двух чисел II (в отсортированном массиве)
Сложность: Средняя.
Условие задачи: дан одномерный целочисленный массив, элементы которого расположены в порядке неубывания.
Требуется вернуть индексы (начиная с единицы) двух элементов, сумма которых будет равна целевому значению.
Гарантируется, что ответ уникальный, и при этом каждый элемент массива можно использовать однокрастно.
Решение должно быть O(1) по памяти.
Пример:
Ввод:
Ввод:
Решение задачи
Сложность: Средняя.
Условие задачи: дан одномерный целочисленный массив, элементы которого расположены в порядке неубывания.
Требуется вернуть индексы (начиная с единицы) двух элементов, сумма которых будет равна целевому значению.
Гарантируется, что ответ уникальный, и при этом каждый элемент массива можно использовать однокрастно.
Решение должно быть O(1) по памяти.
Пример:
Ввод:
numbers = [2,7,11,15], target = 9
Вывод: [1,2]
Объяснение: Сумма 2 и 7 дает необходимое значение - 9, но так как нам нужны индексы в ответе мы выводим 1 и 2. Ввод:
numbers = [2,3,4], target = 6
Вывод: [1,3]Решение задачи
👍10
Нахождение опорного элемента
Сложность: Лёгкая
Условие задачи: дан массив, состоящий из целых чисел. Необходимо вернуть опорный элемент массива.
Опорным называется такое число массива, относительно которого сумма элементов находящихся слева, равна сумме элементов, расположенных справа.
Необходимо вернуть индекс самого левого опороного элемента, в случае отсутствия такового - вернуть -1.
Пример:
Ввод:
Опорный элемент -
Сложность: Лёгкая
Условие задачи: дан массив, состоящий из целых чисел. Необходимо вернуть опорный элемент массива.
Опорным называется такое число массива, относительно которого сумма элементов находящихся слева, равна сумме элементов, расположенных справа.
Необходимо вернуть индекс самого левого опороного элемента, в случае отсутствия такового - вернуть -1.
Пример:
Ввод:
nums = [1,7,3,6,5,6]
Вывод: 3
Объяснение: Left sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11Right sum = nums[4] + nums[5] = 5 + 6 = 11
Ввод: nums = [1,2,3]
Вывод: -1
Ввод: nums = [2,1,-1]
Вывод: 0
Объяснение: Опорный элемент -
0.
Left sum = 0 (нет элементов левее индекса 0)
Right sum = nums[1] + nums[2] = 1 + -1 = 0
Решение задачи👍13