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

حل تمرین پیشگویی خر کوئرا با پایتون

حل تمرین پیشگویی خر کوئرا با پایتون
حل تمرین پیشگویی خر کوئرا با پایتون

حل تمرین پیشگویی خر کوئرا با پایتون

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

 

حل تمرین پیشگویی خر کوئرا با پایتون

یک روز یک خری متعلق به مناطق بیابانی به آرایشگاه رفت درحالیکه به دلیل خرارت(خر بودن) فکر می‌کرد که کچل است!! (آخر آن شخصی که در آب می‌بیند که خودش نیست!) آرایشگر موجودی کچل و خودپرست بود؛ درنتیجه از کچل‌ها خوشش می‌آمد؛ اینقدر که در حرف زدنش بعد از هر کلمه‌ای یک بار «کچل!» را به کار می‌برد. هم‌چنین آرایشگر اگر کلماتی را بشنود، همیشه کلمات ثابتی را در جواب آن کلمات می‌گوید و سپس کچل هم می‌گوید؛ به این معنی که مثلا همیشه او در جواب «سلام»، «سلام» می‌گوید و درنتیجه اگر به او «سلام» بگویند او «سلام کچل!» خواهد گفت. (همان‌طور که می‌دانید آخر هر کلمه یک «کچل!» هم می‌گوید) یا مثلا امکان دارد که در مقابل کلمه‌ای که به او گفته‌ می‌شود هیچ کلمه‌ای را به عنوان جواب نگوید؛ مثلا اگر در جواب «خداحافظ» او چیزی جواب ندهد، اگر به او گفته شود «خداحافظ» او تنها می‌گوید «کچل!» یعنی حتی در این حالت هم او کچل را می‌گوید.

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

او خر است پس شما باید به سوال او جواب بدهید.

 

ورودی

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

ورودی در تمرین پیشگویی خر

 

خروجی

در تنها خط خروجی جواب آرایشگر را به کلمات بز چاپ کنید. دقت کنید که هر بار که آرایشگر بعد از یک جواب می‌خواهد کچل بگوید، یک علامت تعجب (!) هم با آن می‌گوید.

 

مثال

ورودی نمونه 1

1 2
salam aleikesalam
salam bache

 

خروجی نمونه 1

aleikesalam kachal! kachal!

توضیح: ابتدا آرایشگر جواب کلمه‌ی اول بز (salam) را با کلمه‌ی “aleikesalam” می‌دهد و سپس کچل “!kachal” می‌گوید. بعد هم چون برای کلمه‌ی دوم بز(bache) جوابی ندارد، تنها یک بار کچل “!kachal” می‌گوید.

 

ورودی نمونه 2

4 4
kachal kachal
kalache roghane
kalle pache
salam kachal
salam kalache kalle kachal

 

خروجی نمونه 2

kachal kachal! roghane kachal! pache kachal! kachal kachal!

توضیح: آرایشگر ابتدا جواب کلمه‌ی اول بز (salam) را با کلمه‌ی “kachal” می‌دهد و سپس کچل می‌گوید. بعد جواب کلمه‌ی دوم بز (kalache) را با کلمه‌ی “roghane” می‌دهد و سپس کچل می‌گوید. پس از آن جواب کلمه‌ی سوم بز (kalle) را با کلمه‌ی “pache” می‌دهد و سپس کچل می‌گوید. در نهایت هم جواب کلمه‌ی آخر بز (kachal) را با کلمه‌ی “kachal” می‌دهد و سپس برای آخرین بار کچل می‌گوید.

 

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

n, m = map(int, input().split())
responses = {}

for _ in range(n):
    word, response = input().split()
    responses[word] = response

words = input().split()

output = []
for word in words:
    if word in responses:
        output.append(responses[word] + " kachal!")
    else:
        output.append("kachal!")

print(" ".join(output))

 

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

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

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