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

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