Задача на сложение матриц
Уровень: новичок
Напишите функцию (без использования
// returns:
[ [3, 4, 4],
[6, 4, 4],
[2, 2, 4] ]
#junior #numpy
Пишите свое решение в комментариях👇
@python_job_interview
Уровень: новичок
Напишите функцию (без использования
numpy.matrix.sum())
, которая складывает две квадратные матрицы и возвращает их сумму. Все элементы матриц — целочисленные значения.
matrixAddition(
[ [1, 2, 3],
[3, 2, 1],
[1, 1, 1] ],
// +
[ [2, 2, 1],
[3, 2, 3],
[1, 1, 3] ] )
// returns:
[ [3, 4, 4],
[6, 4, 4],
[2, 2, 4] ]
#junior #numpy
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: дано дерево (т.е. связный неориентированный граф, не имеющий циклов), состоящее из n узлов с числом от 0 до n - 1 и ровно n - 1 ребер. Корнем дерева является узел 0, и каждый узел дерева имеет метку, которая представляет собой символ нижнего регистра, указанный в строковых метках (т.е. узел с номером i имеет метку labels[i]).
Массив ребер задан на ребрах фермы[i] = [ai, bi], что означает наличие ребра между узлами ai и bi в дереве.
Возвращает массив размера n, где и[i] - количество узлов в поддереве узла земли, которые имеют ту же метку, что и узел i.
Поддерево дерева - это дерево, состоящее из узла в T и всех его дочерних узлов.
Пример:
Ввод:
n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
Вывод:
[2,1,1,1,1,1,1]
Объяснение:
Ввод:
n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
Вывод:
[4,2,1,1]
📌Решение
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
📹 Устраиваемся на работу. Решаем тестовое задание на позицию Python Junior.
▪Видео
▪Задание
▪ Код из видео
▪Тест
▪ Список реальных тестовых заданий с собеседований.
@python_job_interview
▪Видео
▪Задание
▪ Код из видео
▪Тест
▪ Список реальных тестовых заданий с собеседований.
@python_job_interview
Условие: дается целочисленный массив nums, верните все различные возможные неубывающие подпоследовательности данного массива, по крайней мере, с двумя элементами. Вы можете вернуть ответ в любом порядке.
Пример:
Ввод: nums = [4,6,7,7]
Вывод: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
Ввод: nums = [4,4,3,2,1]
Вывод: [[4,4]]
Решение
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Данный урок раскроет способы обеспечения безопасности телеграм-бота на Python.
• Видео
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача: Даны 2 списка
preorder
и inorder
, где preorder
- центрированный порядок дерева (сenter > left > rigth), inorder -
прямой проход (left > center > right)
. Оба - описывают структуру одного дерева, необходимо сконструировать бинарное дерево.Пример:
Ввод: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]
Вывод: [3,9,20,null,null,15,7]
Ввод: preorder = [-1], inorder = [-1]
Вывод: [-1]
Пишите свое решение в комментариях👇
📌Решение
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Змеи и лестницы
Условие: дается доска с целочисленной матрицей n x n, где ячейки помечены от 1 до n2 в стиле бустрофедона, начиная с нижнего левого края доски (т.е. доска [n - 1] [0]) и чередуя направление каждой строки.
Вы начинаете с квадрата 1 на доске. В каждом ходе, начиная с квадратного поворота, выполняйте следующее:
Выберите целевой квадрат рядом с меткой в диапазоне [curr + 1, min(curr + 6, n2)].
Если рядом есть змея или лестница, вы должны перейти к месту назначения этой змеи или лестницы. В противном случае вы переходите к следующему.
Игра заканчивается, когда вы достигаете квадрата n2.
Верните наименьшее количество ходов, необходимых для достижения квадрата n2. Если добраться до квадрата невозможно, верните значение -1.
Пример:
Ввод: board = [[-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1],[-1,35,-1,-1,13,-1],[-1,-1,-1,-1,-1,-1],[-1,15,-1,-1,-1,-1]]
Вывод: 4
Ввод: board = [[-1,-1],[-1,3]]
Вывод: 1
Решение
Условие: дается доска с целочисленной матрицей n x n, где ячейки помечены от 1 до n2 в стиле бустрофедона, начиная с нижнего левого края доски (т.е. доска [n - 1] [0]) и чередуя направление каждой строки.
Вы начинаете с квадрата 1 на доске. В каждом ходе, начиная с квадратного поворота, выполняйте следующее:
Выберите целевой квадрат рядом с меткой в диапазоне [curr + 1, min(curr + 6, n2)].
Если рядом есть змея или лестница, вы должны перейти к месту назначения этой змеи или лестницы. В противном случае вы переходите к следующему.
Игра заканчивается, когда вы достигаете квадрата n2.
Верните наименьшее количество ходов, необходимых для достижения квадрата n2. Если добраться до квадрата невозможно, верните значение -1.
Пример:
Ввод: board = [[-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1],[-1,35,-1,-1,13,-1],[-1,-1,-1,-1,-1,-1],[-1,15,-1,-1,-1,-1]]
Вывод: 4
Ввод: board = [[-1,-1],[-1,3]]
Вывод: 1
Решение
💡Задача: Монетообменик
Условие: дается массив, состоящий измонет определенного номинала, а также целевое значение суммы.
Необходимо высчитать наименьшее количество монет, которыми можно получить необходимую сумму или вернуть -1 в случае невозможности.
Количество монет не ограничено.
Пример:
Ввод: coins = [1,2,5], amount = 11
Вывод: 3
Объяснение: 11 = 5 + 5 + 1
Ввод: coins = [2], amount = 3
Вывод: -1
Ввод: coins = [1], amount = 0
Вывод: 0
Решение
Пишите свое решение в комментариях👇
📌Решение
@python_job_interview
Условие: дается массив, состоящий измонет определенного номинала, а также целевое значение суммы.
Необходимо высчитать наименьшее количество монет, которыми можно получить необходимую сумму или вернуть -1 в случае невозможности.
Количество монет не ограничено.
Пример:
Ввод: coins = [1,2,5], amount = 11
Вывод: 3
Объяснение: 11 = 5 + 5 + 1
Ввод: coins = [2], amount = 3
Вывод: -1
Ввод: coins = [1], amount = 0
Вывод: 0
Решение
Пишите свое решение в комментариях👇
📌Решение
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача для новичков.
Вы работаете на производстве, и вас попросили рассчитать общую прибыль, полученную от продажи продукта. Вам дали словарь, содержащий данные о себестоимости единицы продукции (в долларах), цене продажи единицы продукции (в долларах) и начальных товарных запасах. Верните общую полученную прибыль, округленную до целого доллара
Пример:
1. Предполагаем, что все запасы были проданы.
2. Прибыль = общая сумма продаж – общая себестоимость
Пишите ваши варианты решения в комментах👇
@python_job_interview
Вы работаете на производстве, и вас попросили рассчитать общую прибыль, полученную от продажи продукта. Вам дали словарь, содержащий данные о себестоимости единицы продукции (в долларах), цене продажи единицы продукции (в долларах) и начальных товарных запасах. Верните общую полученную прибыль, округленную до целого доллара
Пример:
profit({
"cost_price": 32.67,
"sell_price": 45.00,
"inventory": 1200
}) ➞ 14796
profit({
"cost_price": 225.89,
"sell_price": 550.00,
"inventory": 100
}) ➞ 32411
profit({
"cost_price": 2.77,
"sell_price": 7.95,
"inventory": 8500
}) ➞ 44030
Примечание:1. Предполагаем, что все запасы были проданы.
2. Прибыль = общая сумма продаж – общая себестоимость
Пишите ваши варианты решения в комментах👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие:
Дан массив со словами, в котором есть хотя бы одно слово. Необходимо найти максимально длинное общее начало каждого слова. Если такого нет — вывести пустую строку.
Например: имеем
['дог', 'домен', 'домра', 'доширак']
. Общее начало каждого слова — 'до'.Другой пример: массив
['документ', 'кот', 'кум', 'ум']
. Ответом будет пустая строка, потому что у всех этих слов нет единой общей части в начале слова.
Пишите ваши варианты решения в комментах👇
📌 Решение
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
https://www.youtube.com/watch?v=iLzA0H0Ao6o&t=28s
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разбор задачи с собеседования Data Science. Подготовка на практике
Разбор реальной задачи специалиста Data Science — кредитный скоринг. Определяем, вернёт ли клиент кредит, исходя из статистики
▪ https://t.iss.one/data_analysis_ml -подписывайтесь на наш телеграм анализ данных на Python, где мы Data Science обучаем на практике.…
▪ https://t.iss.one/data_analysis_ml -подписывайтесь на наш телеграм анализ данных на Python, где мы Data Science обучаем на практике.…
Задача часто встречается на собеседованиях.
Код оптимального решения с 2 указателями:
nums = [0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1]
k = 3
left = right = max1 = zeros = 0
while right < len(nums):
if nums[right] == 0:
zeros += 1
while zeros > k:
if nums[left] == 0:
zeros -= 1
left += 1
max1 = max(max1, right - left + 1)
right += 1
print(max1)
Решение: https://www.youtube.com/shorts/VWEFo37RP44
📌 Решение
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ссылка на Leetcode c описанием интервью и похожих задач — https://leetcode.com/discuss/interview-experience/1069708/Goldman-Sachs-Associate-or-3%2B-Years-Experience-or-Offer
ссылка на саму задачу на Leetcode — https://leetcode.com/problems/h-index-ii/
Вот условие:
Дан список
[3, 0, 6, 1, 5]
, в нём - количество цитирований каждой статьи. Необходимо определить максимальный h-index
данного автора*(автор имеет
h-index
, равный 2, если есть как минимум 2 статьи цитируемостью >= 2)*Оптимальное решение:
m = [3, 0, 6, 1, 5]
s = [0] * (len(m)+1)
for x in m:
try:
s[x] += 1
except:
s[len(m)] += 1
m = []
for x in range(0, len(s)):
m += s[x] * [x]
for n in range(1, len(m)):
if m[-n] >= n:
print(n)
Пишите ваши варианты решения в комментах👇📌 Решение
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Найти все числа, исчезнувшие в массиве
Условие:
Дан массив
nums
, в которой числа из диапазона [1, n]
. Необходимо вывести числа из [1, n]
, которых нет в nums
.Пример 1:
Вход:
nums = [4,3,2,7,8,2,3,1].
Выход:
[5,6]
Пример 2:
Вход:
nums = [1,1]
Выход: [2]
Ограничения:
n == nums.length
1 <= n <= 105
1 <= nums[i] <= n
Код:
nums = [4, 3, 2, 7, 8, 2, 3, 1]
ch = [0] * len(nums)
for el in nums:
ch[el-1] += 1
net = []
for n in range(len(ch)):
if ch[n] == 0:
net.append(n+1)
print(net)
📌 Разбор задачи
Пишите ваши варианты решения в комментах👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно найти максимальную длину подстроки из неповторяющихся элементов.
Оптимальный алгоритм O(n):
def max_subs_len(s):
seen = {}
max_length = 0
start = 0
for n, el in enumerate(s):
if el in seen:
start = max(start, seen[el] + 1)
seen[el] = n
max_length = max(max_length, n - start + 1)
return max_length
📌 Разбор решения
Пишите ваши варианты решения в комментах👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM