مراجعة - لوحة المتصدرين
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 32 من 56.
التحدي
متوسطأنت تقوم بإنشاء لوحة متصدرين. اقرأ سطرًا واحدًا من المدخلات: قائمة مفصولة بفاصلة من إدخالات name:score. بعض الإدخالات تحتوي على درجة غير صحيحة (ليست عددًا صحيحًا) ويجب تخطيها (استخدم compactMap).
اطبع أفضل ثلاثة لاعبين حسب الدرجة تنازليًا، لاعب واحد في كل سطر، بالتنسيق التالي:
<rank>. <name> - <score>تبدأ الرتب من 1. قم بفك الارتباط (التعادل) حسب الاسم أبجديًا. إذا كان هناك أقل من ثلاثة إدخالات صالحة، فاطبعها جميعًا.
بعد لوحة المتصدرين، اطبع Avg: <n> مع المتوسط الصحيح لـ كل درجة صالحة (يتم التقريب نحو الصفر، بدون فواصل عشرية). عند عدم وجود إدخالات صالحة، اطبع Avg: 0.
للمدخلات alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99، يكون المخرج:
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86جرّب بنفسك
let entries = readLine()!.components(separatedBy: ",")
// مهام: استخدام compactMap للتحويل إلى (الاسم، الدرجة)؛ الفرز حسب الدرجة تنازلياً مع استخدام الاسم لفك الارتباط؛
// طباعة أفضل 3؛ ثم متوسط جميع الدرجات الصالحة
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات