[Buổi 24][Hàm tiền tố & KMP][WS] Bài 1: Dò mẫu trong luồng log


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Dò mẫu trong luồng log

Bối cảnh và bài toán

Một hệ thống giám sát lưu toàn bộ chuỗi ký hiệu sự kiện trong một ca vận hành. Bộ phận phân tích có một mẫu cảnh báo ngắn và cần biết mẫu đó xuất hiện bao nhiêu lần trong luồng log, kể cả khi các lần xuất hiện chồng lấn lên nhau.

Yêu cầu

Cho chuỗi log t và mẫu p. Hãy đếm số vị trí bắt đầu mà p xuất hiện trong t.

Input

  • Dòng 1 chứa chuỗi t.
  • Dòng 2 chứa chuỗi p.

Output

In một số nguyên: số lần p xuất hiện trong t.

Ràng buộc

  • 1 <= |t|, |p| <= 2 * 10^5
  • Các chuỗi chỉ gồm chữ cái thường a..z.

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% |t|, |p| <= 200 01–04
S2 30% |t|, |p| <= 5000 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

aaaaa
aa

Output

4

Giải thích. Các lần xuất hiện bắt đầu tại vị trí 1, 2, 3, 4 nên có cả trường hợp chồng lấn.

Ví dụ 2

Input

monitoring
ring

Output

1

Giải thích. Mẫu ring chỉ xuất hiện một lần ở cuối chuỗi.

Gợi ý

Hãy xác định thông tin nào có thể được duy trì khi quét từng ký tự hoặc khi đi qua từng node prefix, thay vì xử lý lại toàn bộ chuỗi/tập từ sau mỗi thao tác.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M08-B24-WS01
Buổi B24
Loại bài WORKSHOP
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 35 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo / Adapted from: CSES Problem Set – String Matching – String Matching (1753).


Comments

There are no comments at the moment.

Zalo