حل تمرین باغچه رز کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات مبانی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین باغچه رز کوئرا با پایتون
ولد یک ردیف رز دارد که هر کدام از آنها آخر هر ماه پژمرده شده و دوباره گل میدهد و هر بار که دوباره میروید میتواند سفید یا سیاه باشد. ولد که گلهای خود را خوب میشناسد میداند که اگر بعد از پایان دوره (منظور از دوره تعدادی ماه پشت سر هم است)، تعداد بارهایی که گل سفید داده است زوج است، آن رز بیبرکت است و باید آن را چید. برای مثال اگر ولد ۲ گل داشته و بخواهد به مدت ۳ ماه آنها را در نظر بگیرد و وضعیت زیر پیش بیاید:
در این صورت گل اول ولد دو بار سفید بوده، که عددی زوج است پس گل اول بی برکت است و باید چیده شود اما گل دوم فقط یکبار سفید بوده که عددی فرد است، پس گلی خوب است. حال به شما تعداد ماههای دوره و این که در هر ماه هر گل چه رنگی داشته، داده میشود؛ شما باید بگویید که در انتهای دوره هر گل بابرکت است یا خیر.
ورودی
در خط اول به شما به ترتیب n تعداد گلهای ولد و سپس m تعداد ماههای دوره داده میشود. در iامین خط از m خط بعدی، یک رشته به طول n متشکل از B و W داده میشود که jامین عنصر آن برابر با مقدار خانه واقع در تقاطع سطر iام و ستون jام است. W به معنای سفید و B به معنای سیاه است.
خروجی
در خروجی از شما خواسته شده که یک ردیف n تایی از کاراکترها چاپ کنید. به ازای هر گلی که زوج بار سفید بوده کاراکتر B و به ازای بقیه آنها کاراکتر F را چاپ کنید.
مثال
ورودی نمونه 1
3 2 WBW BBW
خروجی نمونه 1
FBB
کد پایتون سوال تمرین باغچه رز
<meta charset='utf-8'>from functools import reduce n,m = input().split() n,m = int(n),int(m) colors = [] for _ in range(m): colors.append(input()) is_even = reduce( lambda x,y:[ a ^ True if b=="W" else a for a,b in zip(x,y)], colors, [True for _ in range(n)]) print(''.join(map(lambda x:"B" if x else "F",is_even)))
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ