trang chủ / đề bài / rmsubstr

Xóa đoạn con dài nhất

Đề bài

Mô tả

Cho hai xâu s và t chỉ gồm các chữ cái Latin thường. Biết rằng t là một dãy con của s, tức là có thể thu được t bằng cách xóa đi một số (có thể bằng 0) ký tự của s mà không thay đổi thứ tự các ký tự còn lại.

Bạn cần xóa khỏi s một đoạn con liên tiếp (một dãy các ký tự đứng kề nhau) có độ dài lớn nhất có thể, sao cho sau khi xóa, t vẫn còn là một dãy con của s.

Nếu xóa đoạn s[l..r] thì s trở thành s1s2…sl−1sr+1sr+2…s|s| (với |s| là độ dài của s).

Hãy tìm độ dài lớn nhất của đoạn con liên tiếp có thể xóa sao cho t vẫn là dãy con của s.

Dữ liệu vào

  • Dòng thứ nhất chứa xâu s.
  • Dòng thứ hai chứa xâu t.

Dữ liệu ra

  • In ra một số nguyên — độ dài lớn nhất của đoạn con liên tiếp có thể xóa.

Ràng buộc

  • 1≤|t|≤|s|≤2·105
  • s và t chỉ gồm các chữ cái Latin thường.
  • Đảm bảo t là dãy con của s.

Ví dụ

Input Output Giải thích
bbaba
bb
3 Xóa đoạn aba ở cuối (vị trí 3 đến 5), còn lại bb vẫn chứa dãy con bb.
baaba
ab
2 Xóa đoạn aa (vị trí 2 đến 3), còn lại bba vẫn chứa dãy con ab.
abcde
abcde
0 t trùng với s, không thể xóa ký tự nào.
asdfasdf
fasd
3 Xóa 3 ký tự đầu asd, còn lại fasdf vẫn chứa dãy con fasd.

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