استیو و موریس هر دو سه حلزون دارند:
- یک حلزون کند (
s) - یک حلزون متوسط (
m) - یک حلزون سریع (
f)
اگر موریس در دو مسابقه از سه مسابقه برنده شود، برنامه باید True برگرداند. در غیر این صورت False.
استراتژی موریس:
- دور اول: (
s, f) → فدا کردن کندترین حلزون خود در برابر سریعترین حلزون استیو. - دور دوم: (
m, s) → استفاده از حلزون متوسط خود در برابر کندترین حلزون استیو. - دور سوم: (
f, m) → استفاده از سریعترین حلزون خود در برابر حلزون متوسط استیو.
ورودیهای تابع:
- لیست 1:
[s, m, f](کند، متوسط، سریع) برای موریس - لیست 2:
[s, m, f](کند، متوسط، سریع) برای استیو
مثال
maurice_wins([3, 5, 10], [4, 7, 11]) ➞ True
# مسابقات: (3, 11), (5, 4), (10, 7)
# موریس در دو مسابقه (5 > 4) و (10 > 7) برنده میشود.
نمونه ورودی و خروجی
MauriceWins([3, 5, 10], [4, 7, 11]) ➞ True
MauriceWins([6, 8, 9], [7, 12, 14]) ➞ False
MauriceWins([1, 8, 20], [2, 9, 100]) ➞ True
نکات:
- موریس فقط زمانی برنده یک مسابقه میشود که سرعت حلزونش از حلزون استیو بیشتر باشد.
- استیو همیشه با این ترتیب بازی میکند:
[f, s, m] - لیست ورودی همیشه به ترتیب صعودی مرتب است.
EXPECT_EQ(MauriceWins({3, 5, 10}, {4, 7, 11}), true);
EXPECT_EQ(MauriceWins({6, 8, 9}, {7, 12, 14}), false);
EXPECT_EQ(MauriceWins({1, 8, 20}, {2, 9, 100}), true);
EXPECT_EQ(MauriceWins({1, 2, 3}, {2, 3, 4}), false);
EXPECT_EQ(MauriceWins({2, 4, 10}, {3, 9, 11}), true);
EXPECT_EQ(MauriceWins({3, 8, 13}, {5, 11, 15}), true);
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات