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

حل تمرین نرمش جدول کوئرا با پایتون

حل تمرین نرمش جدول کوئرا با پایتون
حل تمرین نرمش جدول کوئرا با پایتون

حل تمرین نرمش جدول کوئرا با پایتون

در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وب‌سایت کوئرا می‌پردازیم.

 

حل تمرین نرمش جدول کوئرا با پایتون

یک جدول n×n به شما داده می‌شود که رنگ هر خانه‌ی آن یا سیاه است یا سفید. سطرهای این جدول را از 1 تا n و از بالا به پایین شماره‌گذاری می‌کنیم. همچنین ستون‌های این جدول را از 1 تا n از چپ به راست شماره گذاری می‌کنیم. سپس اعمالی روی این جدول انجام می‌دهیم و شما باید بگویید که بعد از انجام این اعمال، جدول نهایی به چه صورتی در خواهد آمد. سه عمل وجود دارد که روی جدول قابل انجام است:

  • چرخاندن جدول به اندازه‌ی 90 درجه در جهت عقربه‌های ساعت.
  • قرینه کردن جدول نسبت به خط افقی وسط جدول.
  • قرینه کردن جدول نسبت به خط عمودی وسط جدول.

 

ورودی

در سطر اول ورودی عدد n می‌آید که نمایان‌گر ابعاد جدول است.

ورودی اول در تمرین نرمش جدول

سپس در خط بعدی خود جدول می‌آید؛ به این شکل که در خط ، توضیحات سطر i از این جدول به این صورت می‌آید: یک رشته ورودی داده می‌شود شامل n کاراکتر که هر کدام نمایان‌گر رنگ خانه‌ای از جدول است که متناظر با آن کاراکتر شود. اگر کاراکتر ورودی ‘W’ شود، بدین معنی است که خانه‌ی متناظر با آن کاراکتر سفید رنگ است و اگر کاراکتر ورودی ‘B’ شود، یعنی رنگ خانه‌ی متناظر با کاراکتر سیاه شود. دقت کنید که کاراکتر jام (از چپ) رشته‌ی ورودی، توضیح خانه‌ای از سطر  جدول را می‌دهد که در ستون j نیز هست. سپس در خط بعد یک عدد  می‌آید که نمایانگر تعداد عمل‌هایی است که روی جدول باید انجام شود. سپس در هر خط از q خط بعدی به این صورت توصیف یک عمل می‌آید:

  • اگر ورودی عدد 90 بود به این معنی است که باید جدول 90 درجه در جهت عقربه‌های ساعت چرخانده شود.
  • اگر ورودی حرف انگلیسی ‘V’ بود جدول باید نسبت به خط عمودی وسط جدول قرینه شود.
  • اگر ورودی حرف انگلیسی ‘H’ بود جدول باید نسبت به خط افقی وسط جدول قرینه شود.

ورودی دوم در تمرین نرمش جدول

 

خروجی

در خروجی جدول را بعد از انجام تغییرات چاپ کنید. دقت کنید که جدول را در n سطر خروجی دهید به طوری که در سطر i، توصیف سطر جدول به همان نحوی که در ورودی گفته شد آمده شود.

 

مثال

ورودی نمونه 1

3
WWB
BWB
WWW
1
H

 

خروجی نمونه 1

WWW
BWB
WWB

 

ورودی نمونه 2

3
WWB
BWB
WWW
1
V

 

خروجی نمونه 2

BWW
BWB
WWW

 

ورودی نمونه 3

3
WWB
BWB
WWW
1
90

 

خروجی نمونه 3

WBW
WWW
WBB

 

ورودی نمونه 4

3
WWB
BWB
WWW
2
H
V

 

خروجی نمونه 4

WWW
BWB
BWW

 

کد پایتون سوال تمرین نرمش جدول

def rotate_90_clockwise(matrix): 
    return [list(reversed(col)) for col in zip(*matrix)] 

def flip_horizontal(matrix): 
    return matrix[::-1] 

def flip_vertical(matrix): 
    return [row[::-1] for row in matrix] 

n = int(input().strip()) 
matrix = [list(input().strip()) for _ in range(n)] 
q = int(input().strip()) 
operations = [input().strip() for _ in range(q)] 

for op in operations: 
    if op == '90': 
        matrix = rotate_90_clockwise(matrix) 
    elif op == 'H': 
        matrix = flip_horizontal(matrix) 
    elif op == 'V': 
        matrix = flip_vertical(matrix) 

for row in matrix: 
    print(''.join(row))

 

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

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

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