حل تمرین اوقات فراغت کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین اوقات فراغت کوئرا با پایتون
محمدجواد که پشتکار بالایی دارد، در اوقات فراغت از کارش، جدول حل میکند. او این بار به جدولی برخورده که از حروف کوچک الفبای انگلیسی تشکیل شده است و در انتهای آن کلمه ای داده شده که باید تعداد تکرار های آن در جدول شمرده شود. هر تکرار کلمه در جدول به معنای ظاهر شدن کلمه مورد نظر به صورت افقی و از چپ به راست یا عمودی و از بالا به پایین در قسمتی از جدول است. برای مثال در جدول زیر، کلمه quera 2 بار و کلمه snow 1 بار تکرار شده است. (برای درک بهتر صورت سوال به نمونه ها مراجعه کنید.)
quera users enjoy round award
محمدجواد که باید به زودی به سر کارش برگردد، از شما خواسته جدول را برایش حل کنید.
ورودی
در سطر اول ورودی اعداد n و m میآیند که نشان دهنده تعداد سطر ها و تعداد ستون های جدول هستند. در ادامه n خط میآید که در iمین آنها رشتهای به طول m متشکل از حروف کوچک الفبای انگلیسی آمده که نشان دهنده iمین سطر جدول است. در آخرین خط ورودی رشته s میآید که نشان دهنده کلمه مورد جستجو در جدول است.
خروجی
در تنها خط خروجی باید تعداد تکرار های کلمه مورد نظر در جدول چاپ شود.
مثال
ورودی نمونه 1
5 5 quera users enjoy round award quera
خروجی نمونه 1
2
ورودی نمونه 2
2 8 abababab babababa baba
خروجی نمونه 2
5
کلمه baba به صورت افقی و از چپ به راست در سطر اول 2 بار و در سطر دوم 3 بار ظاهر شده است و به صورت عمودی و از بالا به پایین در جدول ظاهر نشده است.
کد پایتون سوال تمرین اوقات فراغت
n, m = map(int, input().split()) grid = [input().strip() for _ in range(n)] s = input().strip() count = 0 word_length = len(s) for row in grid: for i in range(m - word_length + 1): if row[i:i+word_length] == s: count += 1 for col in range(m): column_str = ''.join(grid[row][col] for row in range(n)) for i in range(n - word_length + 1): if column_str[i:i+word_length] == s: count += 1 print(count)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ