تحدي: تكرار الحروف
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 66 من 68.
التحدي
سهلستتلقى مدخلاً واحداً: سلسلة نصية.
سيكون المدخل سلسلة نصية بهذا التنسيق: hello world
اقرأ سلسلة المدخلات. قم بعدّ تكرار كل حرف في السلسلة (غير حساس لحالة الأحرف)، مع استثناء المسافات. قم بتخزين تكرارات الأحرف في مصفوفة ترابطية (associative array) حيث تكون المفاتيح هي الأحرف والقيم هي أعداد تكرارها.
قم بفرز المصفوفة الترابطية حسب المفتاح بترتيب أبجدي تصاعدي باستخدام ksort().
اطبع كل حرف وتكراره بالتنسيق التالي:
[character]: [count]
اطبع كل زوج (حرف-تكرار) في سطر منفصل، بترتيب أبجدي.
تنسيق المدخلات:
- سطر واحد يحتوي على سلسلة نصية (مثال:
hello world)
المخرجات المتوقعة: طباعة كل حرف وتكراره في سطر منفصل بالتنسيق: [character]: [count]، مرتبة أبجدياً حسب الحرف
جرّب بنفسك
<?php
// قراءة المدخلات
$text = trim(fgets(STDIN));
// TODO: اكتب كودك أدناه
// 1. تحويل السلسلة النصية إلى أحرف صغيرة
// 2. حساب تكرار الأحرف (باستثناء المسافات)
// 3. فرز المصفوفة حسب المفتاح باستخدام ksort()
// 4. طباعة كل حرف وتكراره
?>جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة7التعامل مع التواريخ والأوقات
دالة 'date()'طوابع Unix الزمنية باستخدام 'time()'مقدمة إلى كائن DateTimeتنسيق كائنات DateTimeتعديل كائنات DateTimeمراجعة: حسابات التاريخ10التحديات النهائية
تحدي: فاحص الكلمات المتناظرةتحدي: تكرار الحروفتحدي: إجمالي سلة التسوقتحدي: تصفية العناصر الفريدة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين