بکندباز

سه فنجان روی یک میز در موقعیت‌های A، B و C قرار دارند. در ابتدا، یک توپ زیر فنجان در موقعیت B پنهان شده است. عکس

هر تعویض روی فنجان‌ها انجام می‌دهیم به صورت دو حرف نوشته می‌شود. به عنوان مثال، اگر فنجان‌های در موقعیت‌های A و B را تعویض کنم، می‌توانیم این را به صورت AB یا BA بنویسیم. یک تابع ایجاد کنید که موقعیت حرفی که توپ در آن قرار دارد را پس از اتمام تعویض فنجان‌ها برگرداند. تعویض‌ها به شما به صورت یک لیست داده خواهد شد.

مثال

cup_swapping(["AB", "CA", "AB"]) ➞ "C"

# در این تمرین توپ همیشه در موقعیت B شروع می‌شود.
# 1- فنجان‌های A و B تعویض می‌شوند، پس توپ در موقعیت A قرار می‌گیرد.
# 2- فنجان‌های C و A تعویض می‌شوند، پس توپ در موقعیت C قرار می‌گیرد.
# 3- فنجان‌های A و B تعویض می‌شوند، اما توپ در موقعیت C است، پس حرکت نمی‌کند.

نمونه ورودی و خروجی

CupSwapping(["AB", "CA"]) ➞ C

CupSwapping(["AC", "CA", "CA", "AC"]) ➞ B

CupSwapping(["BA", "AC", "CA", "BC"]) ➞ A

نکات

  • یک تعویض می‌تواند به دو روش مختلف نوشته شود، زیرا هر دو روش با همان نتیجه به پایان می‌رسند.
  • تمام تعویض‌ها به صورت حروف بزرگ نوشته خواهند شد و معتبر خواهند بود.
  • شما نمی‌توانید یک فنجان را با خود آن تعویض کنید.
  • توپ همیشه در موقعیت B شروع می‌شود
EXPECT_EQ(CupSwapping({"AB", "CA"}), 'C');
EXPECT_EQ(CupSwapping({"AC", "CA", "CA", "AC"}), 'B');
EXPECT_EQ(CupSwapping({"BA", "AC", "CA", "BC"}), 'A');
EXPECT_EQ(CupSwapping({}), 'B');
EXPECT_EQ(CupSwapping({"BC", "CB", "CA", "BA"}), 'A');
EXPECT_EQ(CupSwapping({"BC"}), 'C');
EXPECT_EQ(CupSwapping({"BA", "CA", "CB", "CA"}), 'B');

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

نظرات

*
*

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