بکندباز

یک لیست از اعداد 0 و 1 داده شده است. باید بررسی کنید که چه تعداد از این اعداد خوشحال هستند و نسبت آن‌ها به کل اعداد را برگردانید.

[0, 1, 0, 0, 0, 1, 1, 1, 0, 1]  
# اولین عنصر، یعنی 0، و آخرین عنصر، یعنی 1، هر دو ناخوشحال هستند.  
# دومین عنصر، یعنی 1، ناخوشحال است.  
# ماقبل آخرین عنصر، یعنی 0، ناخوشحال است.  
# سایر اعداد در این لیست خوشحال هستند.

تعریف اعداد خوشحال و ناخوشحال

  1. یک 1 ناخوشحال است اگر:
    • عدد سمت چپ و عدد سمت راست آن هر دو 0 باشند.
  2. یک 0 ناخوشحال است اگر:
    • عدد سمت چپ و عدد سمت راست آن هر دو 1 باشند.
  3. اعدادی که فقط یک همسایه دارند (لبه‌های لیست):
    • ناخوشحال هستند اگر تنها همسایه آن‌ها مخالف باشد.
  4. سایر اعداد خوشحال هستند.
portion of happy numbers = (happy 0s + happy 1s) / total numbers

در مثال بالا، عدد 0.6 عدد اعداد خوشحال است.

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

PortionHappy([0, 1, 0, 1, 0]) ➞ 0

PortionHappy([0, 1, 1, 0]) ➞ 0.5

PortionHappy([0, 0, 0, 1, 1]) ➞ 1

نکات

  1. اعداد در ابتدا و انتهای لیست فقط یک همسایه دارند و وضعیت خوشحالی یا ناخوشحالی آن‌ها طبق همسایه تعیین می‌شود.
  2. لیست همیشه حداقل دو عنصر دارد.
  3. خروجی باید یک مقدار اعشاری بین 0 و 1 باشد که نسبت اعداد خوشحال را نشان دهد.
PortionHappy([0, 1, 0, 1, 0])  ➞ 0
PortionHappy([0, 1, 1, 0])  ➞ 0.5
PortionHappy([0, 0, 0, 1, 1])  ➞ 1
PortionHappy([1, 0, 0, 1, 1])  ➞ 0.8
PortionHappy([1, 1, 1, 1, 1])  ➞ 1
PortionHappy([1, 1])  ➞ 1
PortionHappy([1, 0])  ➞ 0

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

نظرات

*
*

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