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

Xâu Tốt

Đề bài

Mô tả

Cho một xâu s độ dài n chỉ gồm hai loại ký tự ><. Bạn có thể thực hiện một loạt thao tác trên xâu, mỗi thao tác chọn một ký tự còn lại trong xâu:

  • Nếu chọn ký tự >, thì ký tự đứng ngay sau nó bị xoá (nếu ký tự được chọn là ký tự cuối cùng, không có gì xảy ra).
  • Nếu chọn ký tự <, thì ký tự đứng ngay trước nó bị xoá (nếu ký tự được chọn là ký tự đầu tiên, không có gì xảy ra).

Xâu được gọi là tốt nếu tồn tại một dãy thao tác sao cho sau khi thực hiện chỉ còn lại đúng một ký tự.

Trước khi thực hiện các thao tác, bạn có quyền xoá bớt một số ký tự trong xâu ban đầu (có thể không xoá ký tự nào, nhưng không được xoá hết — phải còn ít nhất một ký tự).

Hãy tính số ký tự ít nhất cần xoá để xâu trở thành xâu tốt.

Dữ liệu vào

Dòng đầu tiên chứa số nguyên t — số lượng bộ test.

Mỗi bộ test gồm hai dòng:

  • Dòng thứ nhất chứa số nguyên n — độ dài xâu.
  • Dòng thứ hai chứa xâu s độ dài n, chỉ gồm các ký tự ><.

Dữ liệu ra

Với mỗi bộ test, in ra một dòng chứa số ký tự ít nhất cần xoá để xâu trở thành xâu tốt.

Ràng buộc

  • 1t100
  • 1n100

Ví dụ

Input Output Giải thích
3
2
<>
3
><<
1
>
1
0
0
Test 1: xoá một ký tự bất kỳ trong <> để còn lại một ký tự. Test 2: xâu ><< đã tốt — thao tác > < << <<. Test 3: xâu chỉ có một ký tự nên đã tốt.
1
5
<<>>>
2 Cần xoá 2 ký tự < ở đầu để được >>>, sau đó dùng các > ăn dần về bên phải.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0