Sửa lỗi chính tả

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Nhóm đồ án của Trường Công nghệ Thông tin và Truyền thông đang xây dựng chức năng gợi ý sửa lỗi chính tả cho ô tìm kiếm trên cổng thông tin sinh viên. Khi người dùng gõ một từ ~a~, hệ thống so sánh ~a~ với từng từ ~b~ trong từ điển và ưu tiên gợi ý những từ "gần" với ~a~ nhất.

Độ gần được đo bằng số thao tác ít nhất cần thực hiện để biến xâu ~a~ thành xâu ~b~, trong đó mỗi thao tác thuộc một trong ba loại:

  • chèn một ký tự vào một vị trí bất kỳ của xâu (kể cả đầu xâu và cuối xâu);
  • xoá một ký tự bất kỳ của xâu;
  • thay một ký tự bất kỳ của xâu bằng một ký tự khác.

Yêu cầu

Cho hai xâu ~a~ và ~b~, hãy tìm số thao tác ít nhất để biến ~a~ thành ~b~.

Dữ liệu vào

  • Dòng thứ nhất chứa xâu ~a~;
  • Dòng thứ hai chứa xâu ~b~.

Hai xâu chỉ gồm các chữ cái Latinh thường từ a đến z, viết liền nhau, không có dấu cách.

Kết quả ra

Ghi ra một số nguyên duy nhất là số thao tác ít nhất (bằng ~0~ nếu hai xâu giống hệt nhau).

Ràng buộc

~1 \le |a|, |b| \le 5000~, trong đó ~|s|~ là độ dài của xâu ~s~.

  • Subtask 1 (40% số điểm – test 01–08): ~|a|, |b| \le 500~;
  • Subtask 2 (30% số điểm – test 09–14): ~|a|, |b| \le 2000~;
  • Subtask 3 (30% số điểm – test 15–20): không có ràng buộc bổ sung.

Ví dụ

Dữ liệu vào mẫu 1
ollimpic
olympics
Kết quả ra mẫu 1
3

Giải thích

Một cách biến đổi dùng ~3~ thao tác: xoá một chữ l (ollimpic ~\to~ olimpic), thay chữ i đầu tiên bằng chữ y (olimpic ~\to~ olympic), rồi chèn chữ s vào cuối xâu (olympic ~\to~ olympics). Không có cách nào dùng ít hơn ~3~ thao tác.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.