Menu
CoddyTech

Longest Palindromic Substring

ניתנת לך מחרוזת s המורכבת מאותיות אנגליות קטנות. החזר את תת־המחרוזת הפלינדרומית הארוכה ביותר שלה: רצף האותיות הרצופות הארוך ביותר שנקרא אותו הדבר משמאל לימין ומימין לשמאל. אם כמה תת־מחרוזות חולקות את האורך הגדול ביותר, החזר את זו שמתחילה הכי רחוק משמאל.

פונקציה

longestPalindrome(s: string) → string
sstring
המחרוזת באותיות קטנות שיש לחפש
מחזירהstring
תת־המחרוזת הפלינדרומית הארוכה ביותר של s; במקרה של שוויון, השמאלית ביותר

אילוצים

  • 1 ≤ s.length ≤ 2000
  • s מכיל רק אותיות אנגליות קטנות.
  • כאשר לכמה פלינדרומים יש את האורך הגדול ביותר, התשובה היא זה שמתחיל באינדקס הקטן ביותר.

דוגמאות

קלט
s = "bananas"
פלט
"anana"
הסבר
"anana" נקראת אותו הדבר משני הכיוונים ויש בה 5 אותיות. אף קטע ארוך יותר לא עובד: "banana" מתחילה ב-b ומסתיימת ב-a, "ananas" מתחילה ב-a ומסתיימת ב-s, והמילה כולה מתחילה ב-b ומסתיימת ב-s.

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

challenge icon

שאלת המשך

האם תוכל למצוא את התשובה בזמן O(n)?

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

מקרה 1

מקרה 2

מקרה 3

קלט

s = "bananas"

צפוי

"anana"