Xử lý chuỗiSo khớp mẫu
Mô tả
Tại siêu thị Co.opmart, mỗi phiếu nhập kho in một chuỗi mã vạch tổng hợp dài liền mạch, bên trong có thể nhúng nhiều lần mã khuyến mãi PROMO để đánh dấu các mặt hàng đang giảm giá. Nhân viên kho cần đếm chính xác số lần mã PROMO xuất hiện trong chuỗi mã vạch tổng hợp để báo cáo số lượng hàng khuyến mãi thực tế. Các lần xuất hiện không chồng lấn lên nhau — nghĩa là sau khi phát hiện một lần khớp, ta nhảy qua đúng độ dài mã khuyến mãi rồi mới tiếp tục tìm ở phần còn lại.
Đầu vào
barcode— chuỗi mã vạch tổng hợp, gồm các chữ cái in hoa (A–Z) và chữ số (0–9).promo— chuỗi mã khuyến mãi cần đếm, cũng gồm chữ cái in hoa và chữ số.
Đầu ra
- Trả về một số nguyên là số lần
promoxuất hiện không chồng lấn trongbarcode.
Ràng buộc
- Độ dài
barcodenằm trong khoảng từ 1 đến 10^5 ký tự. - Độ dài
promonằm trong khoảng từ 1 đến 100 ký tự. - Nếu
promodài hơnbarcode, kết quả tự nhiên là 0.
Ví dụ
Ví dụ 1:
- Đầu vào:
barcode = "PROMO123PROMO",promo = "PROMO" - Đầu ra:
2 - Giải thích: Trượt cửa sổ từ trái sang phải. Tại vị trí 0 thấy khớp
PROMO, nhảy bước 5 ký tự. Tại vị trí 8 lại thấy khớpPROMO. Tổng cộng 2 lần.
Ví dụ 2:
- Đầu vào:
barcode = "PRPROMOMO",promo = "PROMO" - Đầu ra:
1 - Giải thích: Tại vị trí 0,
PRPROkhông khớp. Tại vị trí 2,PROMOkhớp. Nhảy bước 5 ký tự qua hết phần còn lại. Tổng cộng 1 lần.