سوالات چالشی هفته اول دومین دوره لیگ مایکد به همراه پاسخهای مورد انتظار تست کیسها جهت آشنایی بیشتر شرکتکنندگان در لیگ منتشر میگردد.
پاسخهای تیم برنده جهت افزایش جنبه آموزشی و استفاده سایر شرکتکنندگان پس از آزمون کامنت گذاری شده است.
دریافت
عنوان: پر کردن دادههای پرت با میانگین
حجم: 171 کیلوبایت
دریافت
عنوان: اختصارنویسی با حذف حروف صدا دار
حجم: 149 کیلوبایت
دریافت
عنوان: رمزنگاری با توجه به مکان در الفبا
حجم: 209 کیلوبایت
# Coded By BitFire Team - All Rights Reserved
# تابع پردازش اصلی - این تابع روی هر خط ورودی اجرا می شود
def solve(data: str):
# ذخیره ورودی برای پردازش نهایی
tmp_data = data
# حذف علامت (؟) برای محاسبه ی میانگین اعداد
data = data.replace("?","")
data = data.strip()
# حذف فاصله های اضافه در رشته (برای مثال اگر دو فاصله کنار هم قرار داشته باشند آنها را به یک فاصله تبدیل می کند)
cleaner = ""
prev_char = ""
for char in data:
if prev_char == " " and char == " ":
pass
else:
cleaner += char
prev_char = char
data = cleaner
# جدا کردن اعداد (به صورت رشته) از یکدیگر
values = data.split(" ")
# تبدیل نوع اعداد داخل لیست از رشته به عدد صحیح
values = list(map(lambda x: int(x),values))
# محاسبه میانگین
avg = sum(values)/len(values)
# تبدیل میانگین به رشته و محدود کردن به دو رقم اعشار
avg = "{:.2f}".format(avg)
# جایگذاری میانگین محاسبه شده به جای علامت های (؟) در رشته ورودی اولیه
tmp_data = tmp_data.replace("?",str(avg))
return tmp_data
# Coded By BitFire Team - All Rights Reserved
# تابع پردازش اصلی - این تابع روی هر خط ورودی اجرا می شود
def solve(data: str):
word = data.strip()
# مجموعه ی اعداد صدادار
vowels = "aeiouAEIOU"
if len(word) <= 3:
# برگرداندن کلمه به عنوان خروجی در صورتی که طول رشته از 3 کمتر باشد
return word
else:
# حذف حروف صدادار از کلمه
result = ""
for ch in word:
if ch not in vowels:
result += ch
# خلاصه سازی به حداکثر سه حرف و تبدیل به حروف کوچک
return result[:3].lower()
# Coded By BitFire Team - All Rights Reserved
import string
# تابع پردازش اصلی - این تابع روی هر خط ورودی اجرا می شود
def solve(data: str):
# تهیه دیکشنری، جهت تبدیل حرف به عدد متناظر آن در جدول حروف الفبا انگلیسی
# مثال خروجی: {"a":1,"b":2,...,"z":26}
letters = {}
count = 1
for letter in string.ascii_lowercase:
letters[letter] = count
count += 1
# تهیه دیکشنری، جهت تبدیل عدد به حرف متناظر آن در جدول حروف الفبا انگلیسی
# مثال خروجی: {1:"a",2:"b",...,26:"z"}
letters_reversed = {}
count = 1
for letter in string.ascii_lowercase:
letters_reversed[count] = letter
count += 1
# لیست اعداد حروف هر دسته
root_letters = [1,4,9,16,25] # حروف ریشه دار
incompleted_letters = [3,5,7,11,13,15,17,19,21,23] # حروف ناتمام
heavy_letters = [2,6,8,10,12,14,18,20,22,24,26] # حروف سنگین
text = data
# بخش بندی خروجی نهایی به سه قسمت
result_root = [] # بخش حروف ریشه دار
result_incompleted = [] # بخش حروف ناتمام
result_heavy = [] # بخش حروف سنگین
text = text.lower() # کوچک سازی حروف برای پردازش
# دسته بندی حروف ورودی به سه دسته و قرار دادن عدد آن در دسته خروجی مربوطه
for char in text:
if letters[char] in root_letters:
result_root.append(letters[char])
elif letters[char] in incompleted_letters:
result_incompleted.append(letters[char])
elif letters[char] in heavy_letters:
result_heavy.append(letters[char])
# مرتب سازی اعداد حروف موجود در رشته ورودی در هر دسته، بر اساس معیار های مرتب سازی سوال
result_root = sorted(result_root) # اعداد ریشه دار: از کوچک به بزرگ
result_incompleted = sorted(result_incompleted) # اعداد ناتمام: از کوچک به بزرگ
result_heavy = sorted(result_heavy,reverse=True) # اعداد سنگین: از بزرگ به کوچک
# ایجاد خروجی با قرار دادن دسته ها در کنار یکدیگر به ترتیب
output = ""
for item in result_root:
output += letters_reversed[item]
for item in result_incompleted:
output += letters_reversed[item]
for item in result_heavy:
output += letters_reversed[item]
return output.upper() # بازگرداندن خروجی به صورت حروف بزرگ
دریافت
عنوان: سورس کد تیم برنده هفته اول دومین دوره لیگ مایکد
حجم: 3.99 کیلوبایت
توضیحات: تیم بیت فایر
دیدگاهها (۲)
هادی
۱۰ بهمن ۰۴ ، ۱۹:۳۳
آیا نوشتن تابع برای کد واجبه؟
ایا این امکان هست که برنامه رو بدون تابع بنویسیم؟ یا حتما باید از تابع استفاده بکنیم؟
پاسخ:
۱۰ بهمن ۰۴، ۲۱:۴۷
کوروش ادیبیان
۱۱ بهمن ۰۴ ، ۰۰:۰۲
برای آپلود پاسخ, باید کد رو آپلود کرد یا خروجی رو؟
پاسخ:
۱۳ بهمن ۰۴، ۰۸:۱۰
باید پاسخ رو آپلود کرد