Xâu đối xứng tiền tố - hậu tố
Đề bài
Mô tả
Cho một xâu gồm các chữ cái Latin in thường. Hãy tìm xâu dài nhất thoả mãn đồng thời ba điều kiện sau:
- Độ dài của không vượt quá độ dài của .
- là xâu đối xứng, tức là đọc từ trái sang phải và từ phải sang trái đều như nhau.
- Tồn tại hai xâu và (có thể rỗng) sao cho (dấu là phép ghép xâu), trong đó là một tiền tố của và là một hậu tố của .
Lưu ý rằng và được lấy độc lập với nhau: chúng có thể chồng lấn lên nhau trên , thậm chí một trong hai (hoặc cả hai) có thể rỗng.
Chương trình cần xử lý nhiều bộ dữ liệu trong cùng một tệp vào.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên là số bộ dữ liệu.
- dòng tiếp theo, mỗi dòng chứa một xâu không rỗng gồm các chữ cái Latin in thường.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng xâu dài nhất thoả mãn các điều kiện trên. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.
Ràng buộc
- Tổng độ dài của tất cả các xâu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 a abcdfdcecba abbaxyzyx codeforces acbba |
a abcdfdcba xyzyx c abba |
Với abcdfdcecba, xâu abcdfdcba abcdfdc ba có độ dài , là xâu đối xứng, trong đó abcdfdc là tiền tố còn ba là hậu tố của ; không tồn tại xâu nào dài hơn. Với codeforces, đáp án c có độ dài (xâu s cũng là một đáp án hợp lệ khác). |
| 3 aaa banana abcda |
aaa anana aba |
Với aaa, cả xâu đã là đối xứng nên lấy luôn . Với banana, chọn rỗng và anana. Với abcda, chọn ab và a để được aba. |
Bình luận