Xoay vòng chuỗi bằng KMP
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
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
Cho hai xâu \(A\) và \(B\) cùng độ dài. Tìm vị trí xoay vòng nhỏ nhất để biến \(A\) thành \(B\) (khi nối \(A + A\), tìm vị trí xuất hiện đầu tiên của \(B\) nhỏ hơn \(|A|\)). Nếu không có, in ra -1.
Định dạng đầu vào
- Dòng 1: xâu \(A\).
- Dòng 2: xâu \(B\).
Định dạng đầu ra
- Số vị trí xoay vòng hoặc -1.
Ví dụ
Input:
abcde
cdeab
Output:
3
Ràng buộc
- 100% số điểm: \(|A|, |B| \le 10^5\).
Nhận xét