PythonBoost - сообщество питонистов
12.1K subscribers
295 photos
6 videos
547 links
Лучший Python телеграм канал для новичков.

Цель: подготовка студентов, начинающих питонистов к нахождению первой работы.

@anothertechrock

РКН: https://kurl.ru/Jhcwp
Download Telegram
Ответ к предыдущей задаче для новичков.

def lexicalOrder(n: int) -> list[int]:
return [int(i) for i in sorted(str(i) for i in range(1, n + 1))]

#pythonзадача #coбес
Задача для новичков.

Напишите функцию countSegments(), которая принимает на вход строку, а возвращает количество сегментов в данной строке. Под сегментами подразумеваются последовательности символов без пробела.

Пример работы данной функции:

countSegments('Напишите функцию countSegments()') --> 3
countSegments('Под сегментами подразумеваются последовательности') --> 4

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
1
Ответ к предыдущей задаче для новичков.

def countSegments(s: str) -> int:
return len(s.split())

#pythonзадача #coбес
Задача для новичков.

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

Пример работы данной функции:

findMissedNumbers([4,3,2,7,8,2,3,1]) --> [5, 6]
findMissedNumbers([1, 1, 1]) --> [2, 3]

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def findMissedNumbers(nums: list[int]) -> list[int]:
return [i for i in range(1, len(nums) + 1) if i not in nums]

А вот более быстрый вариант, который работает за линейное время:

def findMissedNumbers(nums: list[int]) -> list[int]:
return list(set(range(1, len(nums) + 1)) - set(nums))

#pythonзадача #coбес
Задача для новичков.

У вас есть n монет, из которых нужно построить лестницу. Лестница состоит из k рядов, в первом из которых строго одна монета, а в следующих на одну монету больше в каждом последующем. Соответственно, последний ряд может быть неполным. Вот пример такой лестницы:
$
$ $
$ $ $
$ $ $
Как видите, тут 4-й ряд неполон. Напишите функцию arrangeCoins(), которая принимает на вход целое число n (количество монет), а выводит количество полных рядов лестницы.

Пример работы данной функции:

arrangeCoins(8) --> 3
arrangeCoins(5) --> 2

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
👍5
Ответ к предыдущей задаче для новичков.

def arrangeCoins(n: int) -> int:
counter = 0
m = 0
row = 1
while m <= n:
m += row
row += 1
counter += 1

return counter if counter == row else counter - 1

#pythonзадача #coбес
🤯1
Задача для новичков.

Дополнение к целому числу — это целое число, которое вы получите, если замените все 0 на 1 и все 1 на 0 в его двоичном представлении. Например, целое число 5 — это «101» в двоичном представлени, а его дополнение — «010», то есть целое число 2.
Напишите функцию findComplement(), которая принимает на вход целое число, а выводит его дополнение.

Примеры работы данной функции:

findComplement(10) --> 5
findComplement(5) --> 2

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def findComplement(num):
mask = 1
while mask < num:
mask = (mask << 1) + 1
return num ^ mask

#pythonзадача #coбес
👍4
Задача для новичков.

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

Примеры работы данной функции:

chunkArray([1,2,3,4,5], 1) --> [[1], [2], [3], [4], [5]]
chunkArray([1,9,6,3,2], 6) --> [[1, 9, 6, 3, 2]]
chunkArray([1,9,6,3,2], 3) --> [[1, 9, 6], [3, 2]]

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def chunkArray(arr, size):
chunked = []
index = 0
while index < len(arr):
chunked.append(arr[index:index+size])
index += size
return chunked

#pythonзадача #coбес
Задача для новичков.

Напишите функцию minLength(), на вход которой подается строка, состоящая только из заглавных латинских букв. Для ее модификации можно применять операцию удаления подстрок 'AB' или 'BC'. Функция должна вывести длину минимально возможной строки после применения всех доступных операций.

Примеры работы данной функции:

minLength("ABFCACDB") --> 2
minLength("ACBBD") --> 5

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
👍1
Ответ к предыдущей задаче для новичков.

import re

def minLength(s: str) -> int:
match = re.search('AB|CD', s)
while match:
s = re.sub(r'AB|CD', '', s)
match = re.search('AB|CD', s)
return len(s)

#pythonзадача #coбес
👍1
Задача для новичков.

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

Примеры работы данной функции:

makePalindrome("egcfe") --> 'efcfe'
makePalindrome("seven") --> 'neven'

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
👍2
Ответ к предыдущей задаче для новичков.

def makePalindrome(s):
s = list(s)
n = len(s)
for i in range(n // 2):
j = n - i - 1
if s[i] != s[j]:
s[i] = s[j] = min(s[i], s[j])
return ''.join(s)

#pythonзадача #coбес
🤯1