Пронумерованные карты

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

Напишите функцию, которая будет принимать два списка из 5 цифр каждый (первый — ваш, второй — вашего соперника) и возвращать True, если в этом раунде побеждаете вы. В случае ничьей или победы соперника возвращается False.

Разбор примера

 win_round([2, 5, 2, 6, 9], [3, 7, 3, 1, 2]) ➞ True
 # Из ваших цифр можно составить число 96
 # Ваш соперник может составить число 73
 # В этом раунде побеждаете вы, потому что 96 > 73

Примеры

 win_round([2, 5, 2, 6, 9], [3, 7, 3, 1, 2]) ➞ True
 win_round([1, 2, 3, 4, 5], [9, 8, 7, 6, 5]) ➞ False
 win_round([4, 3, 4, 4, 5], [3, 2, 5, 4, 1]) ➞ False

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

def win_round(you, opp):
    return sorted(you)[:2:-1] > sorted(opp)[:2:-1]
def win_round(you, opp):
    highest = lambda x: int(''.join(map(str, sorted(x, reverse=True)[:2])))
    return highest(you) > highest(opp)
python books logo

Английский для программистов

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

×