Xóa xâu đối xứng
Đề bài
Mô tả
Xâu đối xứng là xâu mà đọc từ trái qua phải hay đọc từ phải qua trái đều như nhau. Ví dụ: là xâu đối xứng, còn thì không.
Cho xâu kí tự độ dài chỉ gồm các chữ cái Latin thường. Mỗi hành động được phép xóa một xâu con (gồm các kí tự liên tiếp) của xâu hiện tại, với điều kiện xâu bị xóa là xâu đối xứng. Sau khi xóa, hai phần còn lại ở hai bên được nối liền với nhau.
Ví dụ: với xâu , nếu xóa xâu con thì xâu trở thành . Không thể xóa xâu con vì đây không phải là xâu đối xứng.
Yêu cầu: Hãy xác định số hành động ít nhất để xóa toàn bộ xâu.
Dữ liệu vào
- Dòng đầu tiên ghi một số nguyên dương (): số bộ dữ liệu.
- dòng tiếp theo, dòng thứ chứa xâu của bộ dữ liệu thứ (độ dài không quá kí tự).
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng số hành động ít nhất cần thiết để xóa toàn bộ xâu.
Ràng buộc
- .
- .
- chỉ gồm các chữ cái Latin thường.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 abba addbcba |
1 2 |
là xâu đối xứng nên xóa một lần. Với : xóa được , rồi xóa cả xâu. |
| 3 abca aaabba abab |
2 2 2 |
Ví dụ bổ sung (không có trong đề gốc). : xóa được rồi xóa nốt. : xóa còn ; không thể làm trong một hành động vì không đối xứng. : xóa , còn . |
| 2 z tinhocabatre |
1 8 |
Ví dụ bổ sung (không có trong đề gốc). Với : xóa lần lượt ( hành động) được , xóa được , rồi xóa và . |
Bình luận