Menu
CoddyTech

Valid Palindrome

سهلمؤشرانpython iconjava iconcpp iconc iconjs icon+10

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

تُتجاهل جميع الأحرف الأخرى، مثل . و! و? و: و; و- أو _. إذا لم تحتوِ s على أي حروف أو أرقام، فلن يتبقى شيء، ويُعدّ النص الفارغ متناظرًا.

الدالة

isPalindrome(s: string) → boolean
sstring
النص المراد التحقق منه، بما في ذلك علامات الترقيم
تُرجعboolean
صحيح إذا كانت الأحرف والأرقام في s تُقرأ بالطريقة نفسها في كلا الاتجاهين، مع تجاهل حالة الأحرف

القيود

  • 1 ≤ s.length ≤ 5 × 104
  • s يحتوي على أحرف إنجليزية وأرقام وعلامات الترقيم . ! ? : ; - _، دون مسافات.

أمثلة

المدخلات
s = "Was_it_a_car_or_a_cat_I_saw?"
المخرجات
true
الشرح
احذف الشرطات السفلية وعلامة الاستفهام وحوّل الأحرف الكبيرة إلى صغيرة: ستحصل على wasitacaroracatisaw، وهي الكلمة نفسها عند قراءتها بالعكس.
challenge icon

سؤال إضافي

هل يمكنك تحديد ذلك باستخدام ذاكرة إضافية O(1)، دون إنشاء نسخة منقّحة من s؟

إعادة ضبط الشيفرة
def isPalindrome(s):
    # اكتب الشيفرة هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

s = "Was_it_a_car_or_a_cat_I_saw?"

الإخراج المتوقع

true