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

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

@anothertechrock

РКН: https://kurl.ru/Jhcwp
加入频道
Кодинг-марафон. Задача № 6.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Гарри — почтальон. У него есть почтовый участок размером n * m (матричный / 2D-список). Каждый слот в 2D-списке представляет количество писем в этом месте.

Гарри может идти только вправо и вниз. Он начинает обход в (0, 0) и заканчивает в (n-1, m-1). n представляет высоту, а m — длину матрицы.

Письма Гарри может брать только там, где находится.

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

Примеры:

harry([[5, 2], [5, 2]]) ➞ 12
# (5+5+2)

harry([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]
]) ➞ 72
# (1+6+11+12+13+14+15)

harry([[]]) ➞ -1

Примечание. Как вы видели в примере 3, если матрица пуста, верните -1.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 6

Функцию, возвращающую максимальное количество писем, которое может подобрать почтальон, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 7.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Есть список названий животных:

animals = ["dog", "cat", "bat", "cock", "cow", "pig", "fox", "ant", "bird", "lion", "wolf", "deer", "bear", "frog", "hen", "mole", "duck", "goat"]

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

Примеры:

txt = "goatcode"
count_animals(txt) ➞ 2

# первое животное = "dog"
# оставшиеся символы в строке = "atcoe",
# второе животное = "cat".
# count = 2 (верно)

# если взять сперва "goat",
# оставшиеся символы в строке = "code",
# т.е. больше нельзя составить имен животных
# count = 1 (неверно)


count_animals("goatcode") ➞ 2
# "dog", "cat"

count_animals("cockdogwdufrbir") ➞ 4
# "cow", "duck", "frog", "bird"

count_animals("dogdogdogdogdog") ➞ 5

Номер задачи и ссылку на код шлём @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 7

Функцию, возвращающую максимальное количество названий животных, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 8.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Эта задача основана на игре сапер.
Создайте функцию, которая принимает сетку из "#" и "-". Каждая решетка (#) представляет мину, а каждое тире (-) - место без мин.

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

Примеры:

num_grid ([
[«-», «-», «-», «-», «-»],
[«-», «-», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «-», «-», «-», «-»],
[«-», «-», «-», «-», «-»]
]) ➞ [
[«0», «0», «0», «0», «0»],
[«0», «1», «1», «1», «0»],
[«0», «1», «#», «1», «0»],
[«0», «1», «1», «1», «0»],
[«0», «0», «0», «0», «0»],
]

num_grid ([
[«-», «-», «-», «-», «#»],
[«-», «-», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «-», «-», «-», «-»],
["#", "-", "-", "-", "-"]
]) ➞ [
[«0», «0», «0», «1», «#»],
[«0», «1», «1», «2», «1»],
[«0», «1», «#», «1», «0»],
[«1», «2», «1», «1», «0»],
[«#», «1», «0», «0», «0»]
]

num_grid ([
[«-», «-», «-», «#», «#»],
[«-», «#», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «#», «#», «-», «-»],
[«-», «-», «-», «-», «-»]
]) ➞ [
[«1», «1», «2», «#», «#»],
[«1», «#», «3», «3», «2»],
[«2», «4», «#», «2», «0»],
[«1», «#», «#», «2», «0»],
[«1», «2», «2», «1», «0»],
]

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 8

Функцию, возвращающую “разминированное поле”, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 9.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Слово «двуликий» состоит из 8 букв. Байт в двоичном формате имеет 8 бит. Байт может представлять символ.

Мы можем использовать слово «двуликий» для выражения слов в двоичном формате, если используем заглавные буквы как единицы, а строчные — как нули.

Создайте функцию, которая будет переводить слово в виде обычного текста в «двуликий код».

Примеры:

translator("Hi") ➞ "дВулИкий дВУлИкиЙ"
translator("123") ➞ "двУЛикиЙ двУЛикИй двУЛикИЙ"

Примечание: переводите слова, написанные латиницей, и цифры. За перевод кириллицы - дополнительный балл.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 9

Функцию для перевода обычных слов в “двуликий код” можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 10.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Лабиринт может быть представлен двухмерной матрицей, где нули представляют области, по которым можно ходить, а единицы - стены. Вы начинаете движение с верхнего левого угла, а выход находится в самой нижней правой ячейке.

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

Примеры:

can_exit([
[0, 1, 1, 1, 1, 1, 1],
[0, 0, 1, 1, 0, 1, 1],
[1, 0, 0, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1],
[1, 1, 1, 1, 1, 0, 0]
]) ➞ true

can_exit([
[0, 1, 1, 1, 1, 1, 1],
[0, 0, 1, 0, 0, 1, 1],
[1, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 1, 0, 0, 1],
[1, 1, 0, 0, 1, 1, 1]
]) ➞ false
# В этом лабиринте одни тупики!

can_exit([
[0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1]
]) ➞ false
# Выход так близко, но недостижим!

can_exit([
[0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 0, 0, 0, 0],
[1, 0, 0, 0, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 0]
]) ➞ true

Примечания:

1. В лабиринте размером m x n вы входите в [0, 0] и выходите в [m-1, n-1].

2. За эту задачу можно будет получить дополнительные 10 балов (т.е. всего 20), если сделать визуализацию алгоритма поиска пути при помощи модуля turtle либо его аналогов.

3. Также эту задачу не обязательно сдавать на repl.it - страницы на гитхабе либо просто файла будет достаточно.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 10

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

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2