المتناظر هو كلمة أو عبارة يمكن قراءتها بنفس الطريقة في كلا الاتجاهين. على سبيل المثال ، عبارة "حانة" و "كوخ" هي متناظرة. أحد الأسئلة الشائعة في البرمجة هو كيفية التحقق مما إذا كانت السلسلة المدخلة متناظرة. في هذه المقالة ، سننظر في عدة طرق للتحقق من متناظر سلسلة تم إدخالها من لوحة المفاتيح.
هناك طرق مختلفة لحل هذه المشكلة. واحدة من أبسط والأكثر شيوعا هو مقارنة السلسلة الأصلية مع نسخته المقلوبة. إذا كانت متساوية ، فإن السلسلة هي متناظرة ، وإلا فهي ليست كذلك. Давайте рассмотрим пример:
جافيمبورت جافا.أوتيل.الماسح الضوئي ؛ الفئة العامة باليندرومشيكر { العامة ثابت الفراغ الرئيسي (سلسلة [] أرجس) { الماسح الضوئي الماسح الضوئي = الماسح الضوئي الجديد(System.in) ؛ النظام.خارج.طباعة ( " ::") ؛ إدخال السلسلة = الماسح الضوئي.السطر التالي () ؛ سلسلة عكس = سترينغبويلدر جديد (الإدخال).عكس ().توسترينج () ؛ إذا (الإدخال.يساوي (معكوس)) { النظام.خارج.برينتلن ("Строка является палиндромом")؛} آخر { النظام.خارج.برينتلن ("السلسلة ليست متناظرة")؛} }}
في هذا المثال ، نستخدم فئة الماسح الضوئي لقراءة السلسلة المدخلة من لوحة المفاتيح. ثم نقلب هذه السلسلة باستخدام فئة سترينغبويلدر والطريقة العكسية (). يتم تحويل نتيجة التقليب إلى نوع السلسلة باستخدام طريقة توسترينج (). أخيرا ، نقارن السلسلة الأصلية مع الإصدار المقلوب وإخراج الرسالة المقابلة. الآن يمكنك بسهولة التحقق مما إذا كانت السلسلة المدخلة متناظرة.
كيفية التحقق من متناظرة سلسلة
- قم بإزالة جميع المسافات وعلامات الترقيم من السلسلة.
- تقليل جميع الأحرف إلى أحرف صغيرة.
- تحقق مما إذا كانت السلسلة الناتجة متناظرة.
يمكن استخدام الخوارزمية التالية للتحقق من المتناظرة:
- إنشاء متغيرين: واحد لتخزين السلسلة الأصلية ، والآخر للسلسلة العكسية.
- باستخدام حلقة ، كرر جميع أحرف السلسلة الأصلية بترتيب عكسي وأضفها إلى المتغير باستخدام السلسلة العكسية.
- قارن الخط الأصلي بالخط العكسي. إذا كانت متساوية ، فإن السلسلة الأصلية هي متناظرة ، وإلا فهي ليست كذلك.
وفيما يلي شفرة جافا سكريبت التي تنفذ هذا الاختيار متناظرة:
وظيفة إيسباليندروم (ستر) {
إلى عن على (فار ط = شارع.الطول-1 ؛ أنا > = 0 ؛ أنا--) {ريفيريدستر + = شارع.شارات (الجزء الأول);