.لینک‌های مفید برای شرکت در مسابقه:

می‌توانید سوال‌های خود را در رابطه با سوالات و دیگر بخش‌های پایتون از قسمت "سوال بپرسید" مطرح کنید.

توجه کنید که نسخه پایتون استفاده در سوالات ۳.۷ است.

بازی کلمه‌ها


فرهاد و سلیب که از بازی تفاضل خسته شده بودند، بازی جدیدی را شروع کردند.

بازی کلمه‌ها به این صورت است که فرهاد رشته‌ای را به سلیب می‌دهد و سلیب باید کلمات خوب آن به همراه تعداد تکرارهایش را به فرهاد بدهد.

در واقع فرهاد به سلیب یک رشته می‌دهد که کلمات آن‌ها با کاراکترهای Whitespace از هم جدا شده‌اند؛ برای مثال اگر متن ورودی Hello SAliB! باشد، کلمات آن Hello و SAliB! هستند.

از نظر فرهاد هر کاراکتری که جز حروف انگلیسی نباشد، یک حرف بد است و باید حذف شود. برای مثال کاراکترهای A و b حرف خوب و کاراکتر ! حرف بد هستند.

هم‌چنین به یک کلمه بد می‌گوییم اگر حداقل نیمی از کاراکترهای آن بد باشند. سلیب باید به ازای هر کلمه خوب، کاراکترهای بد آن را حذف کند و سپس کاراکتر اول هر کلمه را بزرگ و دیگر کاراکترها را کوچک کند. برای مثال کلمه A! بد است اما A!A خوب است.

برای مثال اگر متن ورودی به صورت زیر باشد:

"hEllO My FriEnDs!!! thIS i$s A tE%sT For your #p#r#o#b#l#e#m a
Plain text

بعد از این عملیات رشته به صورت زیر در می‌آید:

Hello My Friends This Is A Test For Your A
Plain text

توجه کنید که در این نمونه کلمه #p#r#o#b#l#e#m بد است و حذف شده و از دیگر کلمه‌ها فقط کاراکترهای خوبشان باقی مانده است.

در نهایت سلیب باید در قالب یک لغت‌نامه (Dictionary) که کلیدهای آن کلمات متن و مقادیر هر کلید، تعداد تکرار آن کلمه در متن نهایی است برگرداند.

شما باید تابعی به نام words_check بنویسید که با گرفتن متن ورودی، لغت‌نامه خواسته شده را برگرداند.

نمونه
>> words_check("""hEllO My FriEnDs!!!
thIS is A tEsT For your #p#r#o#b#l#e#m a""")
{'A': 2, 'For': 1, 'Friends': 1, 'Hello': 1, 'Is': 1, 'My': 1, 'Test': 1, 'This': 1, 'Your': 1}
Python
نکات
  • برای این که کلمات رشته s را بر حسب کاراکترهای Whitespace جدا کنید، می‌توانید از تابع s.split() استفاده کنید.
  • برای ارسال باید یک فایل پایتون ارسال کنید که در آن تابع words_check به شکل گفته شده وجود داشته باشد.
  • می‌توانید فایل اولیه‌ی خام را از این لینک دانلود کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.