מציאת הרצף הפלינדרומי הארוך ביותר במערך

פלינדרום (Palindrome) הוא מילה, מספר, משפט, או כל רצף סימנים אחר שקריאתו מימין לשמאל ומשמאל לימין היא זהה.

לדוגמה, המילים "aha", "1221" הן פלינדרום.

במערך חד-ממדי המכיל מספרים שלמים, נגדיר רצף פלינדרומי כסדרה של איברים רצופים במערך המהווים פלינדרום. לדוגמה,

012345678
13231010324

ישנם ארבעה רצפים פלינדרומים:

  1. בין האינדקסים 4 ל-5: {10, 10}
  2. בין האינדקסים 1 ל-3: {3, 2, 3}
  3. בין האינדקסים 3 ל-6: {3, 10, 10, 3}
  4. בין האינדקסים 2 ל-7: {2, 3, 10, 10, 3, 2}

ועוד תשעה רצפים פלינדרומים, כל אחד מהם באורך 1, שהם כל אחד מהתאים.

נתון מערך חד-ממדי של מספרים שלמים arr יש להחזיר את אורכו של הרצף הפלינדרומי הגדול ביותר.

לדוגמה, במערך הזה שלעיל, הרצף הפלינדרומי הגדול ביותר הוא בין האינדקסים 2 ל-7, ואורכו הוא 6. לכן, יוחזר הערך 6.

השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.

דוגמה 1:
קלט:
arr = [1, 3, 2, 3, 10, 10, 3, 2, 4]
פלט:
6

הסבר: הרצף הפלינדרומי הארוך ביותר הוא בין האינדקסים 2 ל-7, ואורכו הוא 6.

דוגמה 2:
קלט:
arr = [1, 2, 3, 4, 5]
פלט:
1

הסבר: כל איבר בפני עצמו הוא פלינדרום, ולכן האורך המקסימלי הוא 1.

דוגמה 3:
קלט:
arr = [1, 2, 3, 2, 1]
פלט:
5

הסבר: כל המערך הוא פלינדרום ולכן אורכו 5.

דוגמה 4:
קלט:
arr = [7, 8, 9, 8, 7, 6, 5]
פלט:
5

הסבר: הרצף הפלינדרומי הארוך ביותר הוא בין האינדקסים 0 ל-4.

דוגמה 5:
קלט:
arr = [1, 1, 1, 1, 1]
פלט:
5

הסבר: כל המערך הוא פלינדרום ולכן אורכו 5.

דוגמה 6:
קלט:
arr = [10, 20, 30, 20, 10, 40, 50]
פלט:
5

הסבר: הרצף הפלינדרומי הארוך ביותר הוא בין האינדקסים 0 ל-4.

דוגמה 7:
קלט:
arr = [1, 2, 3, 4, 3, 2, 1, 5, 6]
פלט:
7

הסבר: הרצף הפלינדרומי הארוך ביותר הוא בין האינדקסים 0 ל-6.

דוגמה 8:
קלט:
arr = [5, 6, 7, 6, 5, 8, 9]
פלט:
5

הסבר: הרצף הפלינדרומי הארוך ביותר הוא בין האינדקסים 0 ל-4.

Loading...
נשמרLn 1, Col 1

קלט:

arr = [1, 3, 2, 3, 10, 10, 3, 2, 4]

הפלט המבוקש:

6