سه فنجان روی یک میز در موقعیتهای 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 است، پس حرکت نمیکند.
نمونه ورودی و خروجی
cup_swapping(["AB", "CA"]) ➞ C
cup_swapping(["AC", "CA", "CA", "AC"]) ➞ B
cup_swapping(["BA", "AC", "CA", "BC"]) ➞ A
نکات
- یک تعویض میتواند به دو روش مختلف نوشته شود، زیرا هر دو روش با همان نتیجه به پایان میرسند.
- تمام تعویضها به صورت حروف بزرگ نوشته خواهند شد و معتبر خواهند بود.
- شما نمیتوانید یک فنجان را با خود آن تعویض کنید.
- توپ همیشه در موقعیت B شروع میشود
self.assertEqual(cup_swapping(["AB", "CA"]), 'C') self.assertEqual(cup_swapping(["AC", "CA", "CA", "AC"]), 'B') self.assertEqual(cup_swapping(["BA", "AC", "CA", "BC"]), 'A') self.assertEqual(cup_swapping([]), 'B') self.assertEqual(cup_swapping(['BC', 'CB', 'CA', 'BA']), 'A') self.assertEqual(cup_swapping(['BC']), 'C') self.assertEqual(cup_swapping(['BA', 'CA', 'CB', 'CA']), 'B')
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات