Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
711 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Задачка с собеседования | #Medium

Условие:

Вам дан IP адрес, но в нём нет разделителей (точек). Вам нужно найти все возможные правильные IP-адреса. Как-то изменять цифры или их порядок нельзя. Количество цифр всегда будет меньше 13.

Пример:

restore_ip('25525511135') -> ['255.255.11.135', '255.255.111.35']
restore_ip('0000') -> ['
0.0.0.0']
restore_ip('1010011256') -> ['
10.100.112.56']

📌 Пишите ваше решение в комментариях. Решение будет примерно через час на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Создайте функцию, которая определяет, является ли число дисариумом или нет. Число называется дисариумом, если сумма его цифр, возведенных в соответствующие положения, равна самому числу.

Пример:

is_disarium(75) ➞ False
# 7 ** 1 + 5 ** 2 = 7 + 25 = 32

is_disarium(135) ➞ True
# 1 ** 1 + 3 ** 2 + 5 ** 3 = 1 + 9 + 125 = 135

📌 Пишите ваше решение в комментариях. Решение будет примерно через час на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам дан массив, который состоит из массивов типа [ID, time], где пользователь ID выполнил какое-то действие в минуту time. Также вам дано число, указывающее на количество возможных пользователей.

Вам нужно вычислить массив ответов размером k элементов так, чтобы для каждого j (1 <= j <= k) answer[j] было числом пользователей, чьё время активности равно j. Учитывайте, что он может в одно и то же время сделать несколько действий, но это считается как одна минута.

Пример:

solution([[0, 5], [1, 2], [0, 2], [0, 5], [1, 3]], 5) ➞ [0, 2, 0, 0, 0]

У ID = 0 ВАП будет 2 (5, 2, 5), и у ID = 1 ВАП будет 2 (2, 3). На answer[2 - 1] пишем количество пользователей, чьё время активности = 2. Это 0 и 1, то есть записываем 2.

solution([[1, 1], [2, 2], [2, 3]], 4) ➞ [1, 1, 0, 0]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

В каждой книге есть n страниц с номерами страниц от 1 до n. summary составляется путем сложения количества цифр всех номеров страниц. Ваша задача, получив summary найти количество страниц.

Пример:

amount_of_pages(5) ➞ 5 # len('12345')
amount_of_pages(25) ➞ 17 # len('1234567891011121314151617')
amount_of_pages(660) ➞ 256

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно нарисовать n строк треугольника Паскаля. В нём на вершине и по бокам стоят единицы, а каждое число внутри равно сумме двух расположенных над ним чисел.

Пример на фото выше.

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

На вход идёт два целых числа, которые составляют промежуток [start, end]. В этом промежутке лет вам нужной найти и вернуть даты (в формате dd/mm/yyyy), когда будет пятница 13.

Если end не задан, то ищем только для года start.

Пример:

friday_the_13(2022) ➞ ['13/05/2022']
friday_the_13(1999, 2000) ➞ ['13/08/1999', '13/10/2000']
friday_the_13(2020, 2023) ➞ ['13/03/2020', '13/11/2020', '13/08/2021', '13/05/2022', '13/01/2023', '13/10/2023']

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Есть определённое количество кувшинок, расположенных в ряд, кузнечик стоит на первой из них. Он может прыгнуть на следующую кувшинку, либо перепрыгнуть через одну. Сколько существует разных способов (путей) добраться до последней кувшинки?

Пример:

get_way(1) ➞ 1
get_way(5) ➞ 8
get_way(16) ➞ 1597

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам дан промежуток чисел от 0 от N. Нужно найти сумму всех чисел в этом промежутке, которые делятся на 2 или на 5.

Пример:

solution(4) ➞ 3
solution(10) ➞ 23 # 3 + 5 + 6 + 9 = 23
solution(100) ➞ 2318

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

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

Придумайте решение без append, pop и remove, это довольно медленные операции.

Пример:

move_zeros([1, 0, 0]) ➞ [1, 0, 0]
move_zeros([1, 0, 5]) ➞ [1, 5, 0]
move_zeros([0, 0, 1]) ➞ [1, 0, 0]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно найти в промежутке от a до b (range(a, b + 1)) числа с особым свойством. Это те, у которых сумма их цифр, возведенных в степень их позиции равняется тому же числу.

Примеры:

sum_dig_pow(1, 100) ➞ [1, 2, 3, 4, 5, 6, 7, 8, 9, 89]
sum_dig_pow(100, 135) ➞ [135]
sum_dig_pow(90, 100) ➞ []

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

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

Примеры:

min_permutation(0) ➞ 0
min_permutation(-20) ➞ -20
min_permutation(293940) ➞ 203499

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Напишите функцию, которая поможет вам определить дату, если вы знаете номер дня в году, а также является ли год високосным или нет. Она принимает номер дня и isLeap в качестве аргументов и возвращает соответствующую дату года в виде строки «Месяц, день».

Примеры:

get_day(365, False) ➞ 'December, 31'
get_day(365, True) ➞ 'December, 30'
get_day(1, True) ➞ 'January, 1'
get_day(127, True) ➞ 'May, 6'

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

В качестве аргументов вам будут даны 2 числа: (num,s). Напишите функцию, которая возвращает массив из s числовых палиндромов, следующих после num. Если число является палиндромом, оно должно быть включено в список.

Примеры:

palindrome(6, 4) ➞ [11, 22, 33, 44]
palindrome(101, 2) ➞ [101, 111]
palindrome(59, 3) ➞ [66, 77, 88]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

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

Пример:

max_zero_sequence([1, 2, -3, 7, 8, -16]) ➞ [1, 2, -3]
max_zero_sequence([25, -35, 12, 6, 92, -115, 17, 2, 2, 2, -7, 2, -9, 16, 2, -11]) ➞ [92, -115, 17, 2, 2, 2]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

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

Пример:

remove_parentheses('example(unwanted thing)example') ➞ 'exampleexample'
remove_parentheses('(first) (second) (third)') ➞ ' '
remove_parentheses('example (words(more words) here)') ➞ 'example '

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Дано число n >= 2, и выведите список со всеми положительными целыми числами меньше gcd(n, k) == 1 (то есть, взаимно простые), где k — любое из возможных чисел.

Примеры:

coprimes(3) ➞ [1, 2]
coprimes(10) ➞ [1, 3, 7, 9]
coprimes(20) ➞ [1, 3, 7, 9, 11, 13, 17, 19]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно найти все числа внутри строки. Даже те, что находятся внутри слов.

Пример:

find_numbers('hello 42 I`m a 32') ➞ ['42', '32']
find_numbers('bla42bla') ➞ ['42']
find_numbers('33.33, 1234 1') ➞ ['33', '33', '1234', '1']

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно проверить, является ли число простым. На вход идут числа от 2 до 10^20. Ваша задача — найти самое оптимальное решение.

Пример:

is_prime(2) ➞ True
is_prime(4) ➞ False
is_prime(1013) ➞ True

📌 Пишите ваше решение в комментариях. Решение будет через 2 часа на этом канале. 👇

#Задачка_с_собеседования
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно написать объединение как в игре 2048.

Примеры:

merge([4, 4, 8, 16]) ➞ [8, 8, 16, 0]
merge([8, 8, 16, 0]) ➞ [16, 16, 0, 0]
merge([16, 16, 0, 0]) ➞ [32, 0, 0, 0]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Счастливые билетики | #Medium

Условие:

Знаете, в автобусах раздают билеты с номерами. Если сумма цифр первой половины равна сумме цифр второй половины, то билет — счастливый.

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

Примеры:

luck_check('56328116') ➞ True
luck_check('123456') ➞ False
luck_check('17935') ➞ True

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования