حل تمرین نرمش جدول کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین نرمش جدول کوئرا با پایتون
یک جدول 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))
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ