در این چالش باید بررسی کنید که آیا یک عدد دادهشده “خودتوصیفگر” است یا خیر. یک عدد خودتوصیفگر ویژگیهای زیر را دارد:
- تعداد ارقام آن باید زوج باشد، زیرا باید به صورت جفتهای مجاور تقسیم شود.
- هر جفت از ارقام، به صورت
[x, y]، بیان میکند که عدد شاملxنمونه از رقمyاست. - اگر تمام جفتهای ارقام شرایط فوق را برآورده کنند، عدد خودتوصیفگر است.
توضیح با مثالها
- عدد 224444:
- تقسیم به جفتها:
[2, 2],[4, 4],[4, 4] - بررسی هر جفت:
[2, 2]: دو نمونه از2وجود دارد. درست.[4, 4]: چهار نمونه از4وجود دارد. درست.[4, 4]: چهار نمونه از4وجود دارد. درست.
- نتیجه: True
- تقسیم به جفتها:
- عدد 333:
- تعداد ارقام فرد است، بنابراین تقسیم به جفت ممکن نیست.
- نتیجه: False
تابعی به نام is_self_describing بنویسید که یک عدد صحیح غیرمنفی num دریافت کند و بررسی کند که آیا عدد خودتوصیفگر است یا خیر.
نمونه ورودی و خروجی
is_self_describing(10123331) ➞ True
is_self_describing(224444) ➞ True
is_self_describing(2211) ➞ False
نکات
- اگر تعداد ارقام عدد فرد باشد، عدد خودتوصیفگر نیست.
- جفتهای تکراری قابلقبول هستند، اما باید برای هر جفت شرط برقرار باشد.
- تمام ارقام عدد باید در بررسی جفتها لحاظ شوند.
- ورودی همیشه یک عدد صحیح معتبر غیرمنفی خواهد بود.
is_self_describing(10123331) ➞ True
is_self_describing(224444) ➞ True
is_self_describing(2211) ➞ False
is_self_describing(333) ➞ False
is_self_describing(27273332) ➞ True
is_self_describing(11) ➞ False
is_self_describing(22) ➞ True
is_self_describing(881722888888) ➞ True
وقت بخیر ،
این عدد چرا خود توصیف گر نیست ؟ (2211)
[1,1] [2,2] دو تا دو داره ...یکی یک .... تعداد ارقام هم زوج هم هست ... متوجه نشدم چرا False شده.
ممنون
متوجه شدم .. دو تا یک داره ...اما [1,1] یکی یک داره ...