تم حلها: Palindrome باستخدام وظيفة عكسية

آخر تحديث: 09/11/2023
نبذة عن الكاتب: مسار مصدر بايثون

Palindromes هي كلمات أو عبارات تقرأ نفس الاتجاه للأمام وللخلف. تشمل الأمثلة "سيدتي" و "سيارة السباق". في البرمجة ، من المهام الشائعة تحديد ما إذا كانت سلسلة معينة هي متناظرة أم لا. في هذه المقالة ، سوف نستكشف أحد هذه الأساليب باستخدام الوظيفة العكسية في بايثون.

سنبدأ بمقدمة موجزة للدالة العكسية ثم ننتقل إلى حل المشكلة. بعد الحل ، ستجد شرحًا شاملاً للكود خطوة بخطوة. أخيرًا ، ستحتوي المقالة على أقسام متعلقة بالمشكلة أو المكتبات أو الوظائف المتضمنة في هذه المشكلة - كل ذلك تحت رؤوس h2 منفصلة.

فهم الوظيفة العكسية

الدالة reverse هي دالة مدمجة في لغة بايثون تُستخدم لعكس ترتيب العناصر في قائمة. عند تطبيقها على سلسلة نصية، يمكنها المساعدة في تحديد ما إذا كانت السلسلة متناظرة أم لا.

في هذه المقالة ، سنستخدم الوظيفة العكسية جنبًا إلى جنب مع تركيبات Python الأخرى لحل مشكلة التناظر وتقديم شرح شامل لكود Python.

حل مشكلة Palindrome

لتحديد ما إذا كانت سلسلة نصية متناظرة باستخدام الوظيفة العكسية ، نحتاج إلى:

  1. تحويل السلسلة إلى قائمة.
  2. اعكس ترتيب العناصر في القائمة باستخدام وظيفة الرجوع.
  3. ادمج العناصر المعكوسة في القائمة لتشكيل سلسلة جديدة.
  4. قارن بين السلاسل الأصلية والمعكوسة لتحديد ما إذا كانت متطابقة.

إليك كود Python الذي يضع هذه الخطوات موضع التنفيذ:

def is_palindrome(input_string):
    original_str_list = list(input_string)
    reversed_str_list = original_str_list.copy()
    reversed_str_list.reverse()
    reversed_str = ''.join(reversed_str_list)
    
    return input_string.lower() == reversed_str.lower()

شرح المدونة خطوة بخطوة

الآن بعد أن أصبح لدينا الرمز ، دعنا نقسمه خطوة بخطوة لفهم كيفية عمله.

1. تعريف الدالة : تأخذ الدالة `is_palindrome` سلسلة نصية كمدخل.

2. تحويل السلسلة إلى قائمة : باستخدام دالة القائمة، نقوم بتحويل سلسلة الإدخال إلى قائمة (original_str_list).

3. عكس القائمة : نقوم بإنشاء نسخة من القائمة الأصلية لتجنب أي آثار جانبية ثم نستخدم وظيفة العكس لعكس ترتيب العناصر في القائمة المنسوخة (reversed_str_list).

4. دمج عناصر القائمة المعكوسة : نستخدم دالة الدمج لدمج عناصر القائمة المعكوسة في سلسلة نصية جديدة (reversed_str).

5. مقارنة السلسلة الأصلية والسلسلة المعكوسة : نقارن النسخة ذات الأحرف الصغيرة من السلسلة الأصلية مع النسخة ذات الأحرف الصغيرة من السلسلة المعكوسة. إذا تطابقتا، تُرجع الدالة القيمة True (مما يدل على أن السلسلة متناظرة)؛ وإلا، تُرجع القيمة False.

تحسين الحل

قد يعمل الكود الخاص بك، لكن استخدام دالة العكس قد لا يكون الطريقة الأمثل لحل مشكلة الكلمات المتناظرة. يمكنك أيضًا استخدام تراكيب القوائم أو تقطيع السلاسل النصية في بايثون لتحقيق النتيجة نفسها.

إليك مثال على استخدام تقطيع سلسلة Python:

def is_palindrome(input_string):
    reversed_str = input_string[::-1]
    return input_string.lower() == reversed_str.lower()

يعد إتقان الأساليب المختلفة لحل مشكلات البرمجة أمرًا بالغ الأهمية للمطورين. كلما تقدمت في رحلة Python الخاصة بك ، ستتعرف على المزيد حول المكتبات والوظائف المختلفة التي يمكن أن تجعل شفرتك أكثر كفاءة وأناقة وتحسينًا. ابق فضوليًا واستمر في الاستكشاف.

الوظائف ذات الصلة: