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

حل تمرین اوقات فراغت کوئرا با پایتون

حل تمرین اوقات فراغت کوئرا با پایتون
حل تمرین اوقات فراغت کوئرا با پایتون

حل تمرین اوقات فراغت کوئرا با پایتون

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

 

حل تمرین اوقات فراغت کوئرا با پایتون

محمدجواد که پشت‌کار بالایی دارد، در اوقات فراغت از کارش، جدول حل می‌کند. او این بار به جدولی برخورده که از حروف کوچک الفبای انگلیسی تشکیل شده است و در انتهای آن کلمه ای داده شده که باید تعداد تکرار های آن در جدول شمرده شود. هر تکرار کلمه در جدول به معنای ظاهر شدن کلمه مورد نظر به صورت افقی و از چپ به راست یا عمودی و از بالا به پایین در قسمتی از جدول است. برای مثال در جدول زیر، کلمه 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)

 

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

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

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