Menu
CoddyTech

Valid Palindrome

נתונה לך מחרוזת 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, שהוא זהה גם כשהופכים אותו.

lock icon+25 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם תוכל להכריע בכך באמצעות זיכרון נוסף של O(1), בלי ליצור עותק מנוקה של s?

איפוס הקוד
def isPalindrome(s):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

s = "Was_it_a_car_or_a_cat_I_saw?"

צפוי

true