.لینکهای مفید برای شرکت در مسابقه:
میتوانید سوالهای خود را در رابطه با سوالات و دیگر بخشهای پایتون از قسمت "سوال بپرسید" مطرح کنید.
توجه کنید که نسخه پایتون استفاده در سوالات ۳.۷ است.
فرهاد و سلیب که از بازی تفاضل خسته شده بودند، بازی جدیدی را شروع کردند.
بازی کلمهها به این صورت است که فرهاد رشتهای را به سلیب میدهد و سلیب باید کلمات خوب آن به همراه تعداد تکرارهایش را به فرهاد بدهد.
در واقع فرهاد به سلیب یک رشته میدهد که کلمات آنها با کاراکترهای Whitespace از هم جدا شدهاند؛ برای مثال اگر متن ورودی Hello SAliB!
باشد، کلمات آن Hello
و SAliB!
هستند.
از نظر فرهاد هر کاراکتری که جز حروف انگلیسی نباشد، یک حرف بد است و باید حذف شود. برای مثال کاراکترهای A
و b
حرف خوب و کاراکتر !
حرف بد هستند.
همچنین به یک کلمه بد میگوییم اگر حداقل نیمی از کاراکترهای آن بد باشند. سلیب باید به ازای هر کلمه خوب، کاراکترهای بد آن را حذف کند و سپس کاراکتر اول هر کلمه را بزرگ و دیگر کاراکترها را کوچک کند. برای مثال کلمه A!
بد است اما A!A
خوب است.
برای مثال اگر متن ورودی به صورت زیر باشد:
بعد از این عملیات رشته به صورت زیر در میآید:
توجه کنید که در این نمونه کلمه #p#r#o#b#l#e#m
بد است و حذف شده و از دیگر کلمهها فقط کاراکترهای خوبشان باقی مانده است.
در نهایت سلیب باید در قالب یک لغتنامه (Dictionary) که کلیدهای آن کلمات متن و مقادیر هر کلید، تعداد تکرار آن کلمه در متن نهایی است برگرداند.
شما باید تابعی به نام words_check
بنویسید که با گرفتن متن ورودی، لغتنامه خواسته شده را برگرداند.
s
را بر حسب کاراکترهای Whitespace جدا کنید، میتوانید از تابع s.split()
استفاده کنید.words_check
به شکل گفته شده وجود داشته باشد.