من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

پاسخ سوال بارکد کوئرا

پاسخ سوال بارکد کوئرا
پاسخ سوال بارکد کوئرا

پاسخ سوال بارکد کوئرا

در این نوشته تمرین “بارکد” که در وب‌سایت کوئرا موجود است را برای شما کاربران عزیز حل کرده‌ایم.

 

پاسخ سوال بارکد کوئرا

امیر هر روز برای رفتن به محل کارش از مترو استفاده می‌کند. یک بلیت مترو یک بارکد نه در نه است که هر خانه آن سیاه یا سفید است. متاسفانه بعضی از خانه‌های بلیت امیر کمرنگ شده و معلوم نیست که چه رنگی بودند. هر بارکد را با یک جدول از اعداد صفر و یک نشان می‌دهیم؛ عدد یک نشان‌دهنده رنگ سیاه و صفر نشان‌دهنده رنگ سفید است. هر بارکد چهار مربع سه در سه که محیط آن سیاه و درونش سفید است، دارد. چهار مربع را می‌توانید در گوشه‌های شکل زیر مشاهده کنید:

111###111
101###101
111###111
#########
#########
#########
111###111
101###101
111###111

توجه کنید که مربع‌های سه در سه گوشه همه بارکدها، باید دقیقا مانند شکل بالا شوند و در غیر این صورت قابل استفاده در مترو نیستند. حال یک بارکد به شما داده شده است؛ اگر رنگ یک خانه معلوم نبود آن را با عدد دو نشان می‌دهیم. شما باید به امیر بگویید که این بارکد چند حالت مختلف می‌تواند دارا شود؛ توجه کنید که بارکد امیر ممکن است در هیچ حالتی درست نشود و در آن صورت جواب صفر است (بارکد در صورتی نامعتبر است که یکی از مربع‌های سه در سه گوشه نتوانند به شکل گفته شده شوند).

 

ورودی سوال بارکد

ورودی شامل ۹ خط است که هر خط شامل ۹ کاراکتر است که بدون فاصله آمده‌اند. هر کاراکتر یکی از ارقام ۰ تا ۲ است. این ارقام به ترتیب نشان‌دهنده رنگ سفید، رنگ سیاه و خانه با رنگ نامعلوم هستند.

 

خروجی سوال بارکد

در تنها خط خروجی تعداد بارکدهای ممکن را چاپ کنید.

 

حل سوال بارکد

import math
 
barcode = []
 
for i in range(9):
    barcode.append(input())
 
able = True
halat = 1
 
for i in range(9):
    for j in range(9):
        if abs(i-4) >= 2 and abs(j-4) >= 2:
            if abs(i-4) == 3 and abs(j-4) == 3:
                if barcode[i][j] == '1':
                    able = False
            else:
                if barcode[i][j] == '0':
                    able = False
        elif barcode[i][j] == '2':
                halat *= 2
 
if able is False:
    print(0)
else:
    print(halat)

منبع سوال‌: وب‌سایت کوئرا

 

اگر روش حل بهتری برای “تمرین بارکد” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.

اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]