بکندباز

استیو و موریس هر کدام سه حلزون مسابقه‌ای دارند: یک حلزون کند (s)، یک حلزون متوسط (m) و یک حلزون سریع (f). اگرچه حلزون‌های استیو از موریس قوی‌تر هستند، اما موریس نقشه‌ای دارد:

  1. دور اول: حلزون کندش را در مقابل سریع‌ترین حلزون استیو قربانی می‌کند.
  2. دور دوم: حلزون متوسطش را در مقابل حلزون کند استیو استفاده می‌کند.
  3. دور سوم: سریع‌ترین حلزونش را در مقابل حلزون متوسط استیو استفاده می‌کند.

وظیفه‌ی شما این است که یک تابع بنویسید که بررسی کند آیا نقشه‌ی موریس موفق خواهد بود یا نه، یعنی موریس بتواند حداقل در 2 از 3 مسابقه پیروز شود.

ورودی‌ها:

  • لیستی از سرعت‌های حلزون‌های موریس به ترتیب [s, m, f].
  • لیستی از سرعت‌های حلزون‌های استیو به ترتیب [s, m, f].

مثال

maurice_wins([3, 5, 10], [4, 7, 11]) ➞ True
# مسابقات: (3, 11), (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] مسابقه می‌دهد.
  • ترتیب ورودی‌ها همیشه به صورت صعودی (از کندترین به سریع‌ترین) خواهد بود.
Assert.True(Backendbaz.MauriceWins(new int[] { 3, 5, 10 }, new int[] { 4, 7, 11 }));
Assert.False(Backendbaz.MauriceWins(new int[] { 6, 8, 9 }, new int[] { 7, 12, 14 }));
Assert.True(Backendbaz.MauriceWins(new int[] { 1, 8, 20 }, new int[] { 2, 9, 100 }));
Assert.False(Backendbaz.MauriceWins(new int[] { 1, 2, 3 }, new int[] { 2, 3, 4 }));
Assert.True(Backendbaz.MauriceWins(new int[] { 2, 4, 10 }, new int[] { 3, 9, 11 }));
Assert.True(Backendbaz.MauriceWins(new int[] { 3, 8, 13 }, new int[] { 5, 11, 15 }));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط