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.