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

Если бросить монетку в аппарат, человек, стоящий за стеной, получит 3 монетки. И наоборот.

Если оба человека будут честно тратить свои монетки, чтобы второй получил прибыль (т.е. делиться, share), оба они будут получать по 2 монетки прибыли по очереди.

Но всегда есть вероятность, что кто-то поступит эгоистично (steal): не захочет тратить свои монетки, но с радостью заберет 3 монетки прибыли, если второй поделится.

Задание

Допустим, у каждого человека есть по 3 монетки. Создайте функцию, которая будет высчитывать прибыль обоих людей. На вход функция будет принимать два списка строк. Списки будут представлять поведение этих людей (слова share и/или steal)

Примеры

 balances(["share"], ["share"]) ➞ [5, 5]
 # Оба человека тратят по монетке и получают по 3.
 
 get_coin_balances(["steal"], ["share"]) ➞ [6, 2]
 # Первый человек получает 3 монетки, второй тратит одну.
 
 get_coin_balances(["steal"], ["steal"]) ➞ [3, 3]
 # Никто ничего не тратит и не получает, остаются при своих.
 
 get_coin_balances(["share", "share", "share"], ["steal", "share", "steal"]) ➞ [3, 11]

Примечания

  • В «минус» никто не уйдет, так что числа всегда будут положительными.
  • Слова будут передаваться в нижнем регистре.

Варианты решений

def get_coin_balances(lst1, lst2):
    a, b = 3, 3
    for i, j in zip(lst1, lst2):
        if i == 'share':  a, b = a-1, b+3
        if j == 'share':  a, b = a+3, b-1
    return [a, b]
def get_coin_balances(r, b):
    x, y = 3, 3
    for i, _ in enumerate(r):
        x, y = [x+2, y] if r[i][:2] == 'sh' else [x+3, y-3];
        x, y = [x, y+2] if b[i][:2] == 'sh' else [x-3, y+3]
    return [x, y]

Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago