Xoá dãy con
Đề bài
Mô tả
Cho một xâu gồm các chữ cái Latin thường. Bạn có thể xây dựng một xâu mới từ bằng cách áp dụng thao tác sau tối đa hai lần:
- Chọn một dãy con với .
- Xoá dãy con đã chọn khỏi (xâu có thể trở thành rỗng).
- Nối dãy con đã chọn vào bên phải xâu , tức là .
Ban đầu là xâu rỗng.
Ví dụ, cho . Lần đầu chọn dãy con , ta được và . Lần thứ hai chọn dãy con , ta được và . Vậy có thể xây dựng từ .
Cho xâu đích , hãy xác định xem có thể xây được bằng thuật toán trên hay không.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số lượng test.
- Với mỗi test:
- Dòng thứ nhất chứa xâu gồm các chữ cái Latin thường.
- Dòng thứ hai chứa xâu gồm các chữ cái Latin thường.
Dữ liệu ra
Với mỗi test, in ra một dòng duy nhất: YES nếu có thể xây được , ngược lại in NO. Chữ hoa hay chữ thường đều được chấp nhận.
Ràng buộc
- Tổng độ dài các xâu trên tất cả các test không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 ababcd abcba a b defi fed xyz x |
YES NO NO YES |
Test 1 đã minh hoạ ở phần đề. Test 2: không chứa ký tự . Test 3: không có cách nào ghép được vì đứng sau và . Test 4: chọn dãy con gồm một ký tự . |
| 3 ababc abcba feded defed ababcfeded abcdebafed |
YES YES YES |
Các test đều có thể tách thành hai đoạn liên tiếp, mỗi đoạn là một dãy con của phần còn lại của (các dãy con phải đôi một rời nhau). |
Bình luận