Python вопросы с собеседований
24.7K subscribers
508 photos
15 videos
17 files
403 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
加入频道
💡 Задача: Взлом замка

Условие: даётся замок, состоящий из четырёх вращающихся дисков, на каждом из которых имеется 10 цифр: от 0 до 9. При этом за раз можно перемещать только одно колесо и на одно значение.

Изначально замок находится на значении «0000».

На вход подаётся список блокирующих комбинаций, то есть таких четвёрок цифр, при которых открыть механизм не представляешься возможным.

Помимо этого даётся шифр открывающий замок, необходимо вычислить наименьшее число перемещений дисков механизма для открытия замка.

Пример:

Ввод:
deadends = ["0201","0101","0102","1212","2002"], target = "0202"
Вывод: 6
Объяснение:
последовательность, открывающая замок: "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202".

📌 Решение задачи

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Задача: Сравнение стёртых строк

Условие: даны две строки, необходимо выяснить являются они идентичными после удаления символов путем использования клавиши backspace (символ #).

Если строка пустая, то backspace оставляет её пустой.

Пример:

Ввод:
s = "ab#c", t = "ad#c"
Вывод:
true
Объяснение:
обе строки после использования удаления символов образуют сроку "ac"

Ввод:
s = "ab##", t = "c#d#"
Вывод:
true

Ввод: s = "a#c", t = "b"
Вывод: false

📌 Решение задачи

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Первая плохая версия

Условие: производится разработка нового программного продукта, и на последней проверке было выявлено, что версия ПО не прошла проверку качества. Каждая следующая версия зависит от предыдущей, то есть если текущая версия не проходит проверки, то все последующие также не годны для какого-либо обслуживания.

Предоставляется n - версий, нумерованных с единицы, необходимо найти первую неисправную версию ПО.

Также дается интерфейс bool isBadVersion(version), который производит проверку на то, является ли проверяемая версия неисправной. Решить задачу необходимо за минимальное количество вызовов чекера.

Пример:

Ввод:
n = 5, bad = 4
Вывод:
4
Объяснение:

call isBadVersion(3) -> false
call isBadVersion(5) -> true
call isBadVersion(4) -> true
4 - первая испорченная версия.

Решение

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Палиндром наибольшей длины в подстроке

Условие задачи: дана строка, необходимо найти в ней палиндром наибольшей длины.

Палиндром - строка, которая одинаково читается как справа-налево, так и слева-направо.

Пример:

Ввод: s = "babad"
Вывод: "bab"
Объяснение: "aba" также является ответом

Ввод: s = "cbbd"
Вывод:
"bb"

Решение

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Удаление дубликатов из отсортированного связного списка

Сложность: Средняя

Условие задачи: Дан указатель на начало отсортированного связного списка, необходимо удалить все дублируемые значения в списке. Надо вернуть связный список, также отсортированный.

Пример:

Ввод:
head = [1,2,3,3,4,4,5]
Вывод: [1,2,5]

Ввод: head = [1,1,1,2,3]
Вывод: [2,3]

Решение задачи

Пишите свое решение в комментариях👇

@python_job_interview
💡Задача: Максимальное среднее подмассива

Условие: дается целочисленный массив nums, состоящий из n элементов и целого числа k.

Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.

Пример:

Ввод:
nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000
Объяснение:

Ввод:
nums = [5], k = 1
Вывод: 5.00000

Решение

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Двумерный бинарный поиск

Условие: дана 2-мерная матрица чисел, в которой числа упорядочены по возрастанию сверху-вниз и слева-направо. Надо определить, есть ли в матрице целевое значение.

Пример:

Ввод:
matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
Вывод:
True

Ввод:
matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
Вывод:
Fasle

Решение

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Разбор задач с Python собеседований

Задача с реального Python собеседования middle разработчика. Рекурсивная сумма. - https://www.youtube.com/watch?v=euoN2zO7zao&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=1&t=2s&pp=iAQB


Разбор задачи с собеседования Data Science. Подготовка на практике - https://www.youtube.com/watch?v=iLzA0H0Ao6o&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=6&t=946s&pp=iAQB

Устраиваемся на работу. Решаем тестовое задание на позицию Python Junior - https://www.youtube.com/watch?v=_-xenbYkazA&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=9&t=18s&pp=iAQB

Совет Python разработчикам - реши задачу Chain sum с реального собеседования - https://www.youtube.com/watch?v=edJSJWEDS0Y&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=10&pp=iAQB

Эти фишки сделают твой Python код лучше - https://www.youtube.com/watch?v=dOD1591Bp_o

Хитрая задача с собеседования #Python - https://www.youtube.com/watch?v=qzbmxG7sYa4&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=2

Решение непростой задачи с Leetcode, часто всплывает на собеседования #pythontutorial - https://www.youtube.com/watch?v=2tqieMDTA4w&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=3

Задача, которая очень часто встречается на собеседованиях #python - https://www.youtube.com/watch?v=VWEFo37RP44&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=4

Cобеседование #Python топовый банк Goldman Sachs Associate на 12000 $ - https://www.youtube.com/watch?v=U2MWw6f-bKc&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=5

Facebook задача с собеседования на #Python на 120000 рублей -
https://www.youtube.com/watch?v=3g3kx08C0uE&list=PLysMDSbb9Hcyxwq966ET1_6dXkNF_PW0L&index=8

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Задача: Смена операции

Условие: дается целое число, нужно переконвертировать данное число в сумму, слагаемых должно быть не менее двух. А само разложение должно осуществляться таким образом, что произведение слагаемых будет максимальным.

В результате необходимо получить это самое произведение.

Пример:

Ввод:
n = 2
Вывод: 1
Объяснение: 2 = 1 + 1, 1 × 1 = 1.

Ввод: n = 10
Вывод: 36
Объяснение: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.

📌 Решение

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Нахождение первой и последние позиций в отсортированном массиве

Сложность: Medium

Условие задачи: Дан целочисленный массив в порядке не убывания (это практически "в порядке возрастания", но данный термин предполагает что некоторые значения могут быть равны), необходимо найти первую и последнюю позиции целевого элемента, который надо отыскать.

Если целевого элемента нет в массиве, то надо вывести [-1; 1].

Алгоритм должен быть не медленнее, чем O(log n) по времени.

Пример:

Ввод:
nums = [5,7,7,8,8,10], target = 8
Вывод: [3,4]
Объяснение:

Ввод:
nums = [5,7,7,8,8,10], target = 6
Вывод: [-1,-1]

📌 Решение

Пишите свое решение в комментариях👇

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Итератор бинарного дерева

Сложность: Средняя

Условие задачи: Вам нужно реализовать класс BSTIterator, представляющий из себя итератор вдоль бинарного дерева, сцепленного по правилу: левый потомок, корень, правый потомок.

Класс должен содержать в себе следующие методы:

- BSTIterator(TreeNode root). Данный метод инициализирует объект класса. root передаются в конструктор в качестве входного аргумента. Указатель должен быть инициализирован несуществующим числом, которое меньше любого из элементов бинарного дерева;

- boolean hasNext(). Возвращает true в случае если существует потомок у правого поддерева. В ином случае возвращает false;

- int next(). Перемещает указатель в правую ветвь, возвращая число в указателе.

При инициализации указатель на несуществующий наименьший элемент, вызывая метод next(), будет возвращать наименьший элемент бинарного дерева.

Пример:

Ввод:

["BSTIterator", "next", "next", "hasNext", "next", "hasNext", "next", "hasNext", "next", "hasNext"]
[[[7, 3, 15, null, null, 9, 20]], [], [], [], [], [], [], [], [], []]
Вывод: [null, 3, 7, true, 9, true, 15, true, 20, false]

Объяснение:
BSTIterator bSTIterator = new BSTIterator([7, 3, 15, null, null, 9, 20]);
bSTIterator.next(); // return 3
bSTIterator.next(); // return 7
bSTIterator.hasNext(); // return True
bSTIterator.next(); // return 9
bSTIterator.hasNext(); // return True
bSTIterator.next(); // return 15
bSTIterator.hasNext(); // return True
bSTIterator.next(); // return 20
bSTIterator.hasNext(); // return False


🔗 Решение

Пишите свое решение в комментариях👇

@python_job_interview
🖥 Комбинация сумм II

Сложность: Средняя

Условие задачи: На входе имеем список возможных кандидатов и целевое значение суммы, необходимо вывести все комбинации, которыми можно получить целевое значение.

Каждое число из списка кандидатов должно содержаться в конечном подсписке из ответов ровно один раз.

Результирующий ответ не должен содержать в себе дубликатов.

Пример:

Ввод:
candidates = [10,1,2,7,6,1,5], target = 8
Вывод: [
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]

Ввод: candidates = [2,5,2,1,2], target = 5
Вывод: [
[1,2,2],
[5]
]

Пишите свое решение в комментариях👇

🔗 Решение
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Возрастающая подпоследовательность наибольшей длины

Сложность: Средняя

Условие задачи: Дан массив, необходимо вычислить наибольшую длину строго возрастающей подпоследовательности.

Пример:

Ввод:
nums = [10,9,2,5,3,7,101,18]
Вывод: 4
Объяснение:
подпоследовательность [2,3,7,101] имеет наибольшую длину.

Решение

Пишите свое решение в комментариях👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👉 Полезный сборник задач по программированию

На codeabbey, вы можете не только оттачивать навыки разработчика, решая задачи разного уровня, но и повысить свой уровень программирования.

На ресурсе есть возможность выиграть сертификаты, подтверждающие ваш уровень. Сборник включает в себя почти 300 задач по различным темам.

https://www.codeabbey.com/

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Идеальное число

Условие: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.

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

Пример:

Ввод:
num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14

Ввод: num = 7
Вывод: false

Решение

Пишите свое решение в комментариях👇

@python_job_interview
🖥 100 вопросов с собеседований Python. Полный разбор реальных вопросов.

Часть1
Часть2

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM