Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
TQ_KT1B2 - PALIN |
* Các bạn HS chú ý: Khi nộp bài máy chấm chỉ chấm test ví dụ của đề bài, sau khi kết thúc
bài KT chúng tôi sẽ chấm lại với bộ test đầy đủ, vì vậy hãy test kỹ trước khi nộp bài mình.
Palindrom là xâu mà đọc xuôi cũng như đọc ngược đều giống nhau. Ví dụ: ‘ABBA’, ‘MADAM’, ‘Z’ là các palindrom. Không phải bất kỳ xâu nào cũng là palindrom. Tuy nhiên, một xâu không phải palindrom bất kỳ luôn có thể biến thành palindrom bằng các phép biến đổi sau:
- Xoá một ký tự tuỳ ý;
- Đổi chỗ hai ký tự bất kỳ.
Mỗi phép biến đổi có thể được sử dụng nhiều lần.
Ví dụ: Xét xâu ‘AABCD’ . Ta có thể biến xâu này thành xâu palindrom như sau:
‘AABCD’ (xóa ký tự 'C') => ‘AABD’ (xóa ký tự 'D') => ‘AAB’ (đổi chỗ ký tự 'A' và 'B') => ‘ABA’.
Yêu cầu: Cho trước xâu ký tự, hãy tìm cách thực hiện các phép biến đổi nêu trên đối với xâu đã cho để thu được palindrom có độ dài lớn nhất (độ dài của xâu ký tự là số lượng ký tự trong nó).
Input
- Dòng đầu tiên chứa số nguyên dương n (n <= 106);
- Dòng thứ hai chứa xâu ký tự gồm n chữ cái latin in hoa ghi liền nhau.
Output
- Độ dài của palindrom tìm được.
Example
Input:5
AABCD Output: 3
Ràng buộc: 60% điểm, tương ứng với 60% bộ test có n <= 500.
Được gửi lên bởi: | Vương Trung Hiếu Nghĩa |
Ngày: | 2014-08-20 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG PAS-GPC PAS-FPC |
Nguồn bài: | Thầy Hòa - Tuyên Quang |