بکندباز

استیو و موریس هر دو سه حلزون دارند:

  • یک حلزون کند (s)
  • یک حلزون متوسط (m)
  • یک حلزون سریع (f)

اگر موریس در دو مسابقه از سه مسابقه برنده شود، برنامه باید True برگرداند. در غیر این صورت False.

استراتژی موریس:

  1. دور اول: (s, f) → فدا کردن کندترین حلزون خود در برابر سریع‌ترین حلزون استیو.
  2. دور دوم: (m, s) → استفاده از حلزون متوسط خود در برابر کندترین حلزون استیو.
  3. دور سوم: (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]
  • لیست ورودی همیشه به ترتیب صعودی مرتب است.
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 }));

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

نظرات

*
*

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