trang chủ / đề bài / thhv19_cvp_11_a

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ụ: aba là xâu đối xứng, còn abb thì không.

Cho xâu kí tự S độ dài N 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 tinhocabatre, nếu xóa xâu con aba thì xâu trở thành tinhoctre. Không thể xóa xâu con tinhoc 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 T (T≤5): số bộ dữ liệu.
  • T dòng tiếp theo, dòng thứ i chứa xâu S của bộ dữ liệu thứ i (độ dài không quá 300 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

  • 1≤T≤5.
  • 1≤N≤300.
  • S chỉ gồm các chữ cái Latin thường.

Ví dụ

Input Output Giải thích
2
abba
addbcba
1
2
abba là xâu đối xứng nên xóa một lần. Với addbcba: xóa dd được abcba, rồi xóa cả xâu.
3
abca
aaabba
abab
2
2
2
Ví dụ bổ sung (không có trong đề gốc). abca: xóa c được aba rồi xóa nốt. aaabba: xóa abba còn aa; không thể làm trong một hành động vì aaabba không đối xứng. abab: xóa aba, còn b.
2
z
tinhocabatre
1
8
Ví dụ bổ sung (không có trong đề gốc). Với tinhocabatre: xóa lần lượt i,n,h,o,c (5 hành động) được tabatre, xóa tabat được re, rồi xóa r và e.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0