بکندباز

تابعی بنویسید که یک لیست از اعداد صحیح و یک عدد صحیح (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]

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

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

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

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

نکات:

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

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

نظرات

*
*

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