So khớp mẫuXử lý chuỗi
Mô tả
Hè này bạn thực tập tại đội kỹ thuật MoMo, phụ trách công cụ kiểm tra mã QR thanh toán. Khi khách hàng quét mã, hệ thống thu được một chuỗi định danh giao dịch khá dài — do lỗi định dạng, bên trong chuỗi xuất hiện nhiều khoảng trống (dấu cách) lặp không theo quy luật.
Đội trưởng nhờ bạn viết một hàm xác thực nhanh: cho trước một đoạn mẫu ngắn (ví dụ MM2024), hãy kiểm tra xem chuỗi định danh giao dịch có chứa đoạn mã này hay không, sau khi đã bỏ đi toàn bộ khoảng trống ở cả chuỗi và mẫu. Nhờ cách xử lý này, những khoảng trống rác sẽ không làm sai lệch kết quả so khớp.
Lưu ý:
- Việc so khớp tính trên phiên bản đã xoá toàn bộ khoảng trống (ký tự
' ') của cả hai chuỗi. - Nếu một trong hai chuỗi rỗng hoàn toàn (hoặc chỉ chứa khoảng trống) thì coi như chuỗi rỗng.
Đầu vào
s: chuỗi định danh giao dịch — kiểu chuỗi.pattern: đoạn mẫu cần tìm — kiểu chuỗi.
Đầu ra
- Trả về
truenếu phiên bản xoá khoảng trống củaschứa phiên bản xoá khoảng trống củapatternở bất kỳ vị trí nào, ngược lại trả vềfalse.
Ràng buộc
- Độ dài
svàpattern: từ 0 đến 1000 ký tự. - Mỗi ký tự trong
svàpatternchỉ gồm chữ cái tiếng Anh (a–z, A–Z), chữ số (0–9) hoặc khoảng trống' '. - Độ dài sau khi xoá khoảng trống của
patternkhông vượt quá độ dài sau khi xoá khoảng trống củas(nếu bằng thìsphải giống hệtpattern).
Ví dụ
Ví dụ 1
s = "M M 2 0 2 4 PAY"pattern = "MM2024"
Giải thích từng bước:
- Xoá khoảng trống trong
s:"MM2024PAY". - Xoá khoảng trống trong
pattern:"MM2024". "MM2024PAY"có chứa"MM2024"ở ngay đầu ⇒ trả vềtrue.
Ví dụ 2
s = "PAY MM 2 0 2 5"pattern = "MM2024"
Giải thích:
- Xoá khoảng trống trong
s:"PAYMM2025". - Xoá khoảng trống trong
pattern:"MM2024". "PAYMM2025"không chứa"MM2024"(năm khác) ⇒ trả vềfalse.