Bài 26.4. Tìm kiếm Văn bản với Ký tự Đại diện - [Độ khó: Khó]
Bài 26.4. Tìm kiếm Văn bản với Ký tự Đại diện - [Độ khó: Khó]
Bạn được giao nhiệm vụ phát triển một tính năng tìm kiếm nâng cao cho một trình soạn thảo văn bản. Tính năng này cho phép người dùng tìm kiếm chuỗi con trong một văn bản lớn bằng cách sử dụng các ký tự đại diện (wildcard characters). Cụ thể, bạn cần hỗ trợ hai loại ký tự đại diện:
?: khớp với bất kỳ một ký tự nào.*: khớp với không hoặc nhiều ký tự bất kỳ.
Chương trình của bạn sẽ nhận một chuỗi văn bản (text) và một chuỗi mẫu (pattern) chứa các ký tự đại diện. Bạn cần xác định xem toàn bộ chuỗi text có khớp với pattern hay không.
INPUT FORMAT
Hai dòng đầu vào:
Dòng 1: Chuỗi text (độ dài tối đa 1000 ký tự).
Dòng 2: Chuỗi pattern (độ dài tối đa 1000 ký tự).
Các chuỗi chỉ chứa các ký tự chữ cái tiếng Anh thường và hoa, số, và các ký tự đại diện ?, *.
OUTPUT FORMAT
In ra TRUE nếu text khớp với pattern, ngược lại in FALSE.
Ví dụ:
Input:
abcde
a*e
Output:
TRUE
Giải thích:
akhớp vớia.*khớp vớibcd(nhiều ký tự).ekhớp vớie.
Input (ví dụ khác):
ab
a?
Output:
TRUE
Giải thích:
akhớp vớia.?khớp vớib.
Input (ví dụ khác):
adceb
a*b
Output:
TRUE
Giải thích:
akhớp vớia.*khớp vớidce.bkhớp vớib.
Input (ví dụ khác):
mississippi
m?ss*pp*
Output:
TRUE
Giải thích:
mkhớp vớim.?khớp vớii.sskhớp vớiss.*khớp vớiiss.ppkhớp vớipp.*khớp vớii.
Input (ví dụ khác):
abc
ab
Output:
FALSE
Giải thích: text dài hơn pattern và không có ký tự đại diện ở cuối để khớp phần còn lại.
Input (ví dụ khác):
a
*
Output:
TRUE
Giải thích: * có thể khớp với 0 hoặc nhiều ký tự, ở đây nó khớp với a.
Input (ví dụ khác):
aaa
a*a
Output:
TRUE
Giải thích: * khớp với a ở giữa.
Comments