Tìm xâu con bằng Hash

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

Bình đang cần kiểm tra xem một xâu \(P\) có xuất hiện trong xâu \(S\) hay không. Bình muốn dùng hash xâu để so sánh nhanh. Hãy giúp Bình xác định tất cả vị trí xuất hiện của \(P\) trong \(S\).

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

  • Dòng đầu chứa xâu \(S\) (\(1 \le |S| \le 10^5\)).
  • Dòng thứ hai chứa xâu \(P\) (\(1 \le |P| \le |S|\)).
  • Các xâu chỉ gồm chữ cái in thường.

Định dạng đầu ra

  • Dòng đầu là số lượng vị trí xuất hiện của \(P\) trong \(S\).
  • Dòng thứ hai là các vị trí bắt đầu (đánh số từ 0).

Ví dụ

Input:

aabcabaab
ab

Output:

3
1 4 7

Ràng buộc

  • 40% số điểm: \(|S| \le 1000\).
  • 60% số điểm còn lại: \(|S| \le 10^5\).

Nhận xét

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