Tìm xâu mẫu bằng KMP

Xem dưới dạng PDF

Gửi bài giải


Điểm: 15
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

An có một văn bản \(T\) và một xâu mẫu \(P\). An muốn tìm tất cả các vị trí mà xâu mẫu \(P\) xuất hiện trong văn bản \(T\) (kể cả khi các lần xuất hiện chồng chéo). Hãy dùng thuật toán KMP để giúp An.

Định dạng đầu vào

  • Dòng đầu chứa xâu \(T\).
  • Dòng thứ hai chứa xâu \(P\).
  • Độ dài các xâu không quá \(10^5\), chỉ gồm chữ cái in thường.

Định dạng đầu ra

  • Dòng đầu: số lượng vị trí xuất hiện.
  • Dòng thứ hai: các vị trí bắt đầu (đánh số từ 0), in theo thứ tự tăng dần. Nếu không có, không in dòng này.

Ví dụ

Input:

aabcabaab
ab

Output:

3
1 4 7

Ràng buộc

  • 100% số điểm: \(|T|, |P| \le 10^5\).

Nhận xét

Không có ý kiến tại thời điểm này.