بکندباز

تابعی بنویسید که یک لیست از اعداد صحیح و یک عدد صحیح (cycle_length) دریافت کند و بررسی کنید که آیا این لیست یک چرخه‌ی تکراری دارد یا نه.

قوانین:

  1. اگر مقدار cycle_length از طول لیست بزرگ‌تر باشد، تابع باید True برگرداند.
  2. لیست باید در قالب چندین بخش از طول cycle_length تکرار شود.
    • اگر هر بخش برابر با اولین بخش نباشد، تابع False برمی‌گرداند.
is_repeating_cycle([1, 2, 3, 1, 2], 3) ➞ True
#  الگوی تکراری: [1, 2, 3] - [1, 2] (بخش آخر ناقص است اما مهم نیست)

مثال چرخه ناتکراری:

is_repeating_cycle([1, 2, 3, 1, 3], 3) ➞ False
# بخش ها نابرابرند [1, 2, 3] != [1, 3]

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

is_repeating_cycle([1, 2, 3, 1, 2, 3, 1], 3) ➞ True

is_repeating_cycle([1, 2, 3, 4, 2, 3, 1], 4) ➞ False

is_repeating_cycle([1, 2, 1, 2, 2], 2) ➞ False

نکات:

  • چرخه‌ها همیشه از اولین عنصر لیست شروع می‌شوند.
  • در صورتی که مقدار cycle_length از طول لیست بزرگ‌تر باشد، تابع True برمی‌گرداند.
  • بخش آخر لیست می‌تواند ناقص باشد اما نباید ناهماهنگ باشد.
self.assertEqual(is_repeating_cycle([1, 2, 3, 1, 2, 3, 1], 3), True)
self.assertEqual(is_repeating_cycle([1, 2, 3, 4, 2, 3, 1], 4), False)
self.assertEqual(is_repeating_cycle([1, 2, 1, 2, 2], 2), False)
self.assertEqual(is_repeating_cycle([1, 1, 1, 1], 3), True)

پاسخ های کاربران به این تمرین

user-qmDa
امتیاز:‌ 3278
تصحیح اتوماتیک 0 0
‎پایتون‎
12 اسفند 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

MarsBoy
امتیاز:‌ 7091
تصحیح اتوماتیک 0 0
‎پایتون‎
26 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Amin
امتیاز:‌ 20573
تصحیح اتوماتیک 0 0
‎پایتون‎
26 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

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