Menu
CoddyTech

Longest Palindrome

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

אותיות גדולות וקטנות נחשבות לאותיות שונות, לכן Aa אינו פלינדרום.

פונקציה

longestPalindrome(s: string) → integer
sstring
האותיות שבהן מותר לך להשתמש, באותיות גדולות ובאותיות קטנות
מחזירהinteger
אורך הפלינדרום הארוך ביותר שאפשר ליצור מאותיות אלה

אילוצים

  • 1 ≤ s.length ≤ 5 × 104
  • s מכיל רק אותיות באנגלית, a עד z ו־A עד Z.
  • אין צורך להשתמש בכל אות.

דוגמאות

קלט
s = "coddyCode"
פלט
5
הסבר
האות o מופיעה פעמיים והאות d שלוש פעמים, והשאר מופיעות פעם אחת. זוג של o, זוג של d ואות אחת שנותרת באמצע נותנים אורך 5, למשל doCod.
challenge icon

שאלת המשך

האם תוכל להחזיר את הפלינדרום הארוך ביותר עצמו, יחד עם אורכו, ועדיין בזמן O(n)?

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

s = "coddyCode"

הפלט הצפוי

5