רעיון
נסה את האלגוריתם הבא: השתמש במשהו שמזכיר מחסנית, אבל מתנהג גם כמו ווקטור, כלומר נותן גישה לכל איבריו מבלי להוציא איברים מהמבנה. בנוסף, השתמש ברשימה מקושרת של תורים דו-כיוונים (תראה בהמשך) כל תור דו כיווני שומר את אורכו. הרשימה שומרת מצביע לתור המקסימלי שהוכנס אליה. עבור כל איבר במחרוזת: 1. אם הוא זהה לאיבר בראש המחסנית, הוצא את שניהם ודחוף אותם לתור דו כיווני חדש (אחד מימין ואחד משמאל). מקרה קצה: אולי צריך להסתכל באיבר *שלפני* ראש המחסנית, במידה ומדובר בפלינדרום באורך איזוגי. 2. כל עוד ישנם איברים זהים בקלט ובראש המחסנית, הוסף אותם לאותו תור דו כיווני באותה הצורה. ברגע שהקלט שונה מראש המחסנית, עבור לתור דו כיווני חדש. כאשר נגמר הקלט: הדפס את התור המקסימלי שאותו "זוכרת" הרשימה המקושרת.