Chuỗi đối xứng

View as PDF

Submit solution


Points: 0.06 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
VNOI Marathon '08 - Practice RoundProblem Setter: Ngô Minh Ðức
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Một chuỗi được gọi là đối xứng (palindrome) nếu như khi đọc chuỗi này từ phải sang trái cũng thu được chuỗi ban đầu.

Yêu cầu: tìm một chuỗi con đối xứng dài nhất của một chuỗi ~s~ cho trước. Chuỗi con là chuỗi thu được khi xóa đi một số ký tự từ chuỗi ban đầu.

Input

Gồm một dòng duy nhất chứa chuỗi ~s~, chỉ gồm những chữ cái in thường. Chuỗi ~s~ có độ dài không vượt quá ~2000~.

Output

Gồm một dòng duy nhất là một xâu con đối xứng dài nhất của xâu ~s~. Nếu có nhiều kết quả, chỉ cần in ra một kết quả bất kỳ.

Sample Input

lmevxeyzl

Sample Output

level

Comments

Please read the guidelines before commenting.



  • 5
    hieuhfgr   commented on June 27, 2022, 7:26 p.m.

    cho mình thắc mắc là trong pascal hình như không có kiểu dữ liệu nào chứa đến 2000 kí tự thì phải thì sao làm bài này được nhỉ?


    • 26
      darkkcyan   commented on June 27, 2022, 7:30 p.m.

      Chào bạn.

      Nếu bạn nói đến kiểu dữ liệu string trong Turbo Pascal hay Freepascal thì đúng là kiểu dữ liệu này chứa tối đa ~255~ kí tự.

      Tuy nhiên trong Freepascal có kiểu dữ liệu ansistring có thể chứa không giới hạn kí tự. Bạn chỉ cần thay string bằng ansistring và dùng kiểu dữ liệu này như kiểu string bình thường.

      Ngoài ra bạn cũng có thể thêm dòng lệnh {$H+} lên đầu chương trình, vậy mọi biến có kiểu dữ liệu string sẽ được trình dịch thay thế bằng ansistring luôn và bạn không phải làm gì thêm.

      Bạn có thể tham khảo thêm tại https://wiki.freepascal.org/Ansistring và https://www.freepascal.org/docs-html/prog/progsu25.html