Chuỗi đối xứng

Xem dạng PDF

Gửi bài giải


Điểm: 0,06 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
VNOI Marathon '08 - Practice RoundProblem Setter: Ngô Minh Ðức
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, 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

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 6
    huydepchai152  đã bình luận lúc 15, Tháng 10, 2023, 2:55

    test bài này hơi yếu


  • 1
    PaDi  đã bình luận lúc 14, Tháng 10, 2023, 16:36

    hay them test "vmovvov"


  • 20
    hieuhfgr  đã bình luận lúc 27, Tháng 6, 2022, 12:26

    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ỉ?


    • 73
      darkkcyan  đã bình luận lúc 27, Tháng 6, 2022, 12:30

      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