سلام دوست عزیز😃👋

به مسابقه «ورودی بوت‌کمپ کداستار - DevOps» خوش آمدی!

هرگونه ارتباط با سایر شرکت‌کنندگان و یا استفاده از ابزارهای تولید کد، مثل ChatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید.

می‌توانید سوال‌ها و مشکلات خود را از بخش «سوال بپرسید» با ما در میان بگذارید.

موفق باشید و بهتون خوش بگذره 😉✌

تشابه‌سنج ابلفضلی


همواره در مسابقاتی که توسط مجموعه کوئرا برگزار می‌شوند، تعدادی از کاربران به منظور فعالیت‌های توطئه‌گرانه، تقلب و بر هم زدن نظم مسابقات، رفتار‌های عجیبی انجام می‌دهند! برخی از آن‌ها با ساخت چنین حساب‌کاربری در کوئرا با یک نام یکسان و یا شرکت در چند مسابقه به صورت همزمان، دست به توطئه‌گری در کوئرا می‌زنند...

ایرادگیر سری جدید کداستار، آقای هاشیمی (MR. Hashimi) از مشروطه‌چیان و توطئه‌گران مجموعه میهمن، برای برگزاری این سری مسابقات از کوئرا درخواست‌های عجیبی دارد. از درخواست‌های عجیب او برگزاری مسابقات مهندسی نرم‌افزار و فرانت‌اند در یک زمان به صورت مشترک بود. از نظر آقای هاشیمی برگزاری مسابقات مهندسی نرم‌افزار و فرانت‌اند در یک زمان می‌تواند به شناسایی متقلبان مسابقات کمک بسیاری کند.

تصویر سوال چهارم

او از کوئرا می‌خواهد تا پس از برگزاری این دو مسابقه و خروجی گرفتن نتایج مسابقه مهندسی‌ نرم‌افزار در فایل software.csv و نتایج مسابقه فرانت‌اند در فایل front.csv ، آن‌ها را تشابه‌سنجی ابلفضلی کند! به مثال زیر از فایل نتایج این دو مسابقه توجه کنید:

extensionFromNamefront.csv
Ali Pishgrad,99
Sara Momeni,50
CSV
extensionFromNamesoftware.csv
Zahra Ahmadi,80
Zahra Ahmadi,70
Zahra Ahmadi,90
CSV
  • فایل نتایج مسابقات کوئرا، به صورت فایل‌هایی با پسوند .csv می‌باشد که هر سطر آن به ترتیب شامل نام و رتبه فرد شرکت‌کننده هستند.

تشابه‌سنج ابلفضلی کوئرا با بررسی هر کدام از فایل‌های نتایج، یعنی front.csv و software.csv، ابتدا سطر‌هایی از نتایج که نام افراد شرکت‌کننده آن‌ها تکرار شده است را شناسایی کرده و صرفا نتیجه‌ای را نگه‌داری کند که رتبه بهتری را در مسابقه کسب کرده است! این تشابه‌‌سنجی در هر کدام از فایل‌ها باعث می‌شود تا در نهایت نام و رتبه تمام شرکت‌کنندگان متمایز گردد.

سپس این تشابه‌سنج باید با بررسی نام شرکت‌کننده‌ها در هر دو فایل front.csv و software.csv در صورتی که نامی را مشاهده کند که در هر دو مسابقه شرکت‌ کرده است، از آن‌جایی که هر دو مسابقه در یک زمان برگزار شده‌اند و یک فرد نمی‌تواند به صورت همزمان در هر دوی آن‌ها شرکت کند، آن فرد باید به عنوان متقلب شناسایی شده و در سمت راست نامش یک * برای نشان‌ دادن متقلب بودن فرد قرار گیرد.

در نهایت نتایج هر کدام از مسابقات مهندسی نرم‌افزار و فرانت‌اند باید بر اساس رتبه به صورت صعودی مرتب‌سازی شوند تا آقای هاشیمی بتواند تصمیم‌گیری درستی در مورد پذیرش افراد در بوت‌کمپ‌های کداستار انجام دهد. از آن‌جایی که همه در کوئرا سخت مشغول برگزاری مجموعه مسابقات کد‌استار هستند، مسئولیت نوشتن بش اسکریپت تشابه‌سنج ابلفضلی کوئرا در این سوال به شما واگذار شده است!

ورودی اسکریپت🔗

ورودی اسکریپت، دو فایل software.csv و front.csv است که هر کدام شامل تعدادی سطر به ترتیب شامل نام و رتبه فرد شرکت‌کننده می‌باشند، که با , از هم جدا شده‌اند. ممکن است برخی از نام‌ها در فایل‌های ورودی تکراری باشند که باید توسط تشابه‌سنج ابلفضلی شناسایی شوند. همچنین تضمین می‌شود که تمامی رتبه‌های مسابقات متمایز هستند و رتبه تکراری در نتایج وجود ندارد.

توجه داشته باشید که سیستم داوری محتویات فایل front.csvو software.csv را به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمی‌دهد و اسکریپت نوشته شده در فایل solution.sh خود به تنهایی قرار است تا خواندن از فایل front.csvو software.csv و نمایش خروجی را انجام دهد.

خروجی اسکریپت🔗

فایل solution.sh شما توسط سیستم داوری اجرا شده و با خواندن فایل‌های software.csv و front.csv و تشابه‌سنجی ابلفضلی و انجام پردازش بر روی آن باید هر کدام از نتایج را به صورت گفته شده (به صورت نتایج متمایز و صعودی بر اساس رتبه که افراد متقلب در آن‌ها شناسایی شده‌اند) دوباره در هر کدام از همان فایل‌ها ذخیره‌سازی کند. توجه داشته باشید که سیستم داوری نسبت به بزرگی و کوچکی حروف نام افراد شرکت‌کننده، موقعیت قرارگیری علامت * برای افراد متقلب و نبود فاصله‌های اضافه‌تر در فایل‌های پردازش شده و نهایی software.csv و front.csv حساس است.

مثال🔗

ورودی نمونه ۱🔗

extensionFromNamefront.csv
Ali Pishgrad,99
Sara Momeni,50
CSV
extensionFromNamesoftware.csv
Mohammad Rezaei,40
Zahra Ahmadi,70
CSV

خروجی نمونه ۱🔗

extensionFromNamefront.csv
Sara Momeni,50
Ali Pishgrad,99
CSV
extensionFromNamesoftware.csv
Mohammad Rezaei,40
Zahra Ahmadi,70
CSV
  • خروجی‌های بالا، یک نمونه از فایل‌های front.csv و software.csv می‌باشند. این دو فایل پس از انجام تشابه‌سنجی ابلفضلی و مرتب‌سازی به صورت بالا تبدیل شده‌اند. توجه داشته باشید که از آن‌جایی که نام هیچ فردی در هر دو فایل نتیجه مسابقات مهندسی نرم‌افزار و فرانت‌اند نبوده است، فردی به عنوان متقلب شناسایی نشده است.

ورودی نمونه ۲🔗

extensionFromNamefront.csv
Zahra Ahmadi,80
Zahra Ahmadi,70
Zahra Ahmadi,90
CSV
extensionFromNamesoftware.csv
Zahra Ahmadi,85
CSV

خروجی نمونه ۲🔗

extensionFromNamefront.csv
Zahra Ahmadi*,70
CSV
extensionFromNamesoftware.csv
Zahra Ahmadi*,85
CSV
  • خروجی‌های بالا، یک نمونه از فایل‌های front.csv و software.csv می‌باشند. این دو فایل پس از انجام تشابه‌سنجی ابلفضلی و مرتب‌سازی به صورت بالا تبدیل شده‌اند. فایل front.csv پس از تشابه‌سنجی، از آن‌جایی که سه شرکت‌کننده با نام‌های یکسان Zahra Ahmadi دارد، تنها بهترین نتیجه برای این نام که رتبه ۷۰ می‌باشد باقی‌ مانده و سایر نتایج از فایل front.csv حذف شده‌اند. همچنین از آن‌جایی که این نام علاوه بر فایل front.csv در فایل software.csv نیز دیده شده و این فرد در هر دو مسابقه که به صورت همزمان برگزار شده‌اند، شرکت‌ کرده است، پس او به عنوان فرد متقلب، شناسایی شده و کنار نامش پس از تشابه‌سنجی ابلفضلی علامت * قرار گرفته است. آقای هاشیمی او را از شرکت در بوت‌کمپ‌های کد‌استار منع خواهد کرد!

آن‌چه باید آپلود کنید🔗

  • توجه: شما باید موارد خواسته شده در سوال را تنها در قالب فایل solution.sh پیاده‌سازی کرده و ارسال کنید.

  • توجه: خروجی پاسخ شما باید عینا مطابق عبارت خواسته شده باشد (یعنی از لحاظ بزرگی و کوچکی حروف و علائم نگارشی و موقعیت قرار گیری * در کنار نام باید بدون تغییرات اضافی باشد)

  • توجه: فایل solution.sh توسط سیستم داوری اجرا می‌شود و نیازی به نوشتن دستور یا اسکریپت دیگری برای اجرای این فایل نیست.

  • توجه: نتایج پس از تشابه‌سنجی ابلفضلی باید در همان‌ فایل‌های front.csv و software.csv بازنویسی شوند.

  • توجه: سیستم داوری محتویات فایل front.csvو software.csv را به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمی‌دهد و اسکریپت نوشته شده در فایل solution.sh خود به تنهایی قرار است تا خواندن از فایل front.csvو software.csv و نمایش خروجی را انجام دهد.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.