EDITDIST - Biến đổi xâu ký tự
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: admin

Với một xâu ký tự S cho trước, ta có thể thực hiện các phép biến đổi sau:

- D (Delete): Xoá một ký tự của xâu S. Ký hiệu D i trong đó i là vị trí cần xóa

- I (Insert): Chèn trước vị trí t của xâu S một ký tự c nào đó. Ký hiệu I t c. Qui định thêm về vị trí chèn: nếu xâu S có độ dài k, vị trí chèn là 1, 2, 3, ..., k+1, chèn ở vị trí k+1 có nghĩa là viết thêm vào cuối xâu S

- R (Replace): Thay ký tự thứ t của S bởi ký tự c nào đó. Ký hiệu R t c

Giả sử X và Y là hai xâu ký tự. Độ dài xâu X là n, độ dài xâu Y là m (0 ≤ m,n ≤ 100)

Hãy tìm một dãy gồm ít nhất các phép biến đổi biến xâu X thành xâu Y (số phép biến đổi ít nhất này gọi là khoảng cách giữa hai xâu)

Dữ liệu vào: gồm hai dòng

- Dòng thứ nhất là xâu X

- Dòng thứ hai là xâu Y

Kết quả ra: 

- Dòng thứ nhất ghi số K, đó là khoảng cách giữa hai xâu

- K dòng tiếp theo mỗi dòng ghi ký hiệu một phép biến đổi theo trình tự thực hiện để biến X thành Y

Ví dụ

  • input
    ertrtyui
    tyuhj
    output
    6
    D 1
    D 1
    D 1
    D 1
    I 4 h
    R 5 j
Back to Top