بکندباز

تابعی بنویسید که بررسی کند آیا می‌توان یک لیست را به دو بخش تقسیم کرد: یکی شامل یک عنصر و دیگری شامل بقیه عناصر، به طوری که مقدار آن یک عنصر برابر با حاصل‌ضرب تمام عناصر باقی‌مانده باشد. اگر چنین تقسیمی امکان‌پذیر باشد، مقدار True و در غیر این صورت مقدار False را برگردانید.

مثال

can_partition([2, 8, 4, 1]) ➞ True
# 8 = 2 x 4 x 1

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

can_partition([2, 8, 4, 1]) ➞ True

can_partition([-1, -10, 1, -2, 20]) ➞ False

can_partition([-1, -20, 5, -1, -2, 2]) ➞ True

نکات

  1. لیست ممکن است شامل عناصر تکراری باشد.
  2. اگر چندین راه‌حل برای این تقسیم‌بندی وجود داشته باشد، هر راه‌حلی کافی است که مقدار True برگرداند.
  3. اگر هیچ راه‌حلی وجود نداشته باشد، مقدار False را برگردانید.
can_partition([2, 8, 4, 1])  ➞ True
can_partition([-1, -10, 1, -2, 20])  ➞ False
can_partition([-1, -20, 5, -1, -2, 2])  ➞ True
can_partition([1, 1, -1, 1])  ➞ False
can_partition([-1, -1, 1, 1])  ➞ True
can_partition([0, 5, 1, -1])  ➞ False
can_partition([0, 0, 1])  ➞ True

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

نظرات

*
*

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