Loại bỏ xâu con đối xứng
Đề bài
Mô tả
Cho một xâu gồm các chữ cái Latin in thường. Một xâu con liên tiếp của được gọi là đối xứng nếu đọc từ trái sang phải và từ phải sang trái đều cho cùng một kết quả.
Bạn được phép thực hiện thao tác sau bao nhiêu lần tuỳ ý: chọn một vị trí bất kỳ và thay chữ cái tại vị trí đó bằng một chữ cái Latin in thường bất kỳ.
Hãy tìm số thao tác ít nhất cần thực hiện để xâu thu được không còn chứa bất kỳ xâu con liên tiếp đối xứng nào có độ dài lớn hơn .
Chẳng hạn với xâu abaa, các xâu con aba và aa đều đối xứng và có độ dài lớn hơn , nên xâu này chưa thoả mãn.
Dữ liệu vào
- Dòng đầu tiên chứa một số nguyên : số lượng bộ dữ liệu.
- Mỗi dòng trong dòng tiếp theo chứa một xâu khác rỗng gồm các chữ cái Latin in thường.
Dữ liệu ra
In ra dòng, dòng thứ là số thao tác ít nhất cần thực hiện với xâu thứ .
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 |
|---|---|---|
| 4 babba abaac codeforces zeroorez |
1 1 0 1 |
Với babba, đổi chữ cái thứ ba thành c được bacba, không còn xâu con đối xứng độ dài lớn hơn 1. Với abaac, đổi chữ cái thứ ba thành d được abdac. Xâu codeforces vốn đã thoả mãn nên không cần thao tác nào. |
| 3 abcdcba bbbbbbb a |
1 4 0 |
Với abcdcba, chỉ cần đổi chữ cái ở giữa là đủ: mọi xâu con đối xứng của nó đều chứa vị trí này. Với bbbbbbb cần tới 4 thao tác, chẳng hạn thu được bcabcab. Xâu a có độ dài 1 nên không chứa xâu con đối xứng nào dài hơn 1. |
Bình luận