Python · از صفر

فهرست یکتای شرکت‌کنندگان

تمرین مرحلهٔ 12: استفاده از set برای تشخیص تکرار و list برای حفظ ترتیب؛ بدون نیاز به یادگیری ماشین و با ارزیابی واقعی خروجی.

۴۲ دقیقه · ۸۰ XP · set · Membership · Order

هدف و راهنمای انجام

استفاده از set برای تشخیص تکرار و list برای حفظ ترتیب

ورودی

request.json: names: لیست رشته؛ خروجی unique با ترتیب اولین مشاهده و removed تعداد تکرارهاست. مقایسه دقیق است.

خروجی

result.json مطابق ساختار مثال؛ تمام کلیدهای نشان‌داده‌شده الزامی هستند.

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. برای هر نام، ابتدا آن را در seen جست‌وجو می‌کنیم. اگر قبلاً دیده نشده باشد، هم به seen و هم به unique اضافه می‌شود. نام تکراری فقط از خروجی یکتا حذف می‌شود و تعداد تکرارها در removed گزارش می‌شود. ورودی شامل رشته‌هاست؛ مقایسه دقیق است و حروف کوچک و بزرگ خودبه‌خود یکی نمی‌شوند.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

Python 3؛ دادهٔ ورودی طبق قرارداد است. تابع solve باید برای همهٔ ورودی‌ها کار کند، نه فقط مثال. کتابخانهٔ خارجی لازم نیست؛ ماژول‌های استاندارد همراه Python 3 هستند.

مثال ورودی و خروجی

{
    "input": {
        "names": [
            "سارا",
            "علی",
            "سارا",
            "رضا",
            "علی"
        ]
    },
    "output": {
        "unique": [
            "سارا",
            "علی",
            "رضا"
        ],
        "removed": 2
    }
}

معیارهای موفقیت

  • ساختار و نوع خروجی با قرارداد برابر است.
  • محاسبه برای چند ورودی متفاوت و حالت‌های مرزی درست است.
  • اجرای ساده XP نمی‌دهد؛ فقط قبولی ارزیابی معتبر باعث ثبت تکمیل می‌شود.

کتابخانه‌ها: json, pathlib

پیش‌نیاز و ترتیب یادگیری

  • منطق بولی و any؛ ساخت یک بررسی‌گر آموزشی
مجموعه و حذف تکرار؛ حفظ ترتیب داده‌ها ←

برای شروع، مقالهٔ بالا را بخوانید. Python 3 و کتابخانه‌های موردنیاز در میزکار آماده‌اند؛ نصب آنلاین از ترمینال میزکار لازم نیست.

برای نوشتن و اجرای کد وارد شوید