trang chủ / bài tập / canipoem

Loại bỏ xâu con đối xứng

Đề bài

Mô tả

Cho một xâu s gồm các chữ cái Latin in thường. Một xâu con liên tiếp của s đượ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 1.

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 1, 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 t: số lượng bộ dữ liệu.
  • Mỗi dòng trong t 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 t dòng, dòng thứ i là số thao tác ít nhất cần thực hiện với xâu thứ i.

Ràng buộc

  • 1t105
  • Tổng độ dài của tất cả các xâu không vượt quá 105.

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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0