الدرس 6 من 8
النصّ المتناظر
- 12 دقيقة
- 6 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
يُقرأ من الجهتين كما هو
الشرح
جملة «كمالك تحت كلامك» تُقرأ من اليمين ومن اليسار كما هي إذا تجاهلت المسافات، والفحص الصحيح لها خطوتان: تطبيع النصّ أولًا، ثم مقارنة طرفيه.
والتطبيع أن تحوّل الأحرف إلى صغيرة، وتحذف كل ما ليس حرفًا أو رقمًا، والتعبير /[^\p{L}\p{N}]/gu يفعل ذلك في كل اللغات معًا، ويحذف التشكيل أيضًا لأنه علامات وليس حروفًا، ولا يعمل \p{…} إلا مع العلامة u. بعد ذلك تستعمل مؤشّرين يبدآن من الطرفين ويتقاربان وهما يقارنان الحروف، ويتوقّفان عند أول اختلاف، فلا تحتاج إلى نسخة مقلوبة من النصّ.
انتبه: التعبير /[^a-z0-9]/g يحذف الحروف العربية كلّها، فتصير كل جملة عربية نصًّا فارغًا، والنصّ الفارغ متناظر، فتجيب الدالة «نعم» عن أي جملة.
المطلوب
اكتب normalize(text) لتُرجع النصّ بعد تطبيعه، وisPalindrome(text) لتطبّع النصّ ثم تقارنه بمؤشّرين وتُرجع true أو false.
الفحوص
6 فحوص- الدالة normalize تحذف المسافات والترقيم وتصغّر الحروف
- الدالة normalize تُبقي الحروف العربية بلا تشكيل
- جملة إنجليزية متناظرة تُرجع true
- جملة عربية مشكولة متناظرة تُرجع true
- نصّ عربي غير متناظر يُرجع false
- تعمل مع الطول الزوجي والفردي