[Buổi 20][Chuỗi][RDD] Bài 24: Tên của bạn là của tôi
Tên của bạn là của tôi
Bối cảnh
FullHouse Dev đang tìm cách kiểm soát sự gia tăng dân số và đã đề xuất một kế hoạch nhắm vào các cuộc hôn nhân. Theo kế hoạch này:
Yêu cầu
Một người đàn ông tên M chỉ được phép kết hôn với một người phụ nữ tên W nếu M là một dãy con của W hoặc W là một dãy con của M.
A được gọi là dãy con của B nếu A có thể được tạo ra bằng cách xóa một số phần tử của B mà không thay đổi thứ tự của các phần tử còn lại.
Nhiệm vụ của bạn là xác định liệu một cặp đôi có được phép kết hôn hay không, theo quy tắc của FullHouse Dev.
Input
- Dòng đầu tiên chứa một số nguyên T, số lượng bộ test.
- Mỗi bộ test chứa hai chuỗi M và W cách nhau bởi dấu cách.
Output
- Với mỗi bộ test, in ra "YES" nếu họ được phép kết hôn, ngược lại in ra "NO". (không in dấu ngoặc kép)
Ràng buộc
- 1 ≤ T ≤ 100
- 1 ≤ |M|, |W| ≤ 25000 (|A| biểu thị độ dài của chuỗi A.)
- Tất cả các tên chỉ bao gồm các chữ cái tiếng Anh viết thường.
Ví dụ 1
Input
3
john johanna
ira ira
kayla jayla
Output
YES
YES
NO
Giải thích ví dụ
Test 1: Xét S = "johanna". Nếu ta xóa các chỉ số [3, 4, 6] hoặc [3, 5, 6] từ S, nó trở thành "john". Do đó "john" là một dãy con của S, vì vậy câu trả lời là "YES".
Test 2: Bất kỳ chuỗi nào cũng là dãy con của chính nó, vì nó được tạo ra sau khi xóa "0" ký tự. Do đó câu trả lời là "YES".
Test 3: "jayla" không thể tạo ra từ "kayla" vì việc xóa bất kỳ ký tự nào từ "kayla" sẽ làm cho độ dài chuỗi nhỏ hơn "jayla", và cũng không có 'j' trong "kayla". Lý luận tương tự có thể áp dụng để thấy tại sao "kayla" không thể tạo ra từ "jayla". Do đó câu trả lời là "NO".
Thông tin học tập
- Buổi: B20
- Concepts: std::string, getline, index, find, substr, basic transformations
- Giới hạn kiến thức: B01-B20
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 20
Comments