Misalkan saya punya dua string. Panggil mereka dan B . Tidak ada string yang memiliki karakter berulang.
Bagaimana saya dapat menemukan urutan tersingkat dari memasukkan, memindahkan, dan menghapus operasi yang mengubah menjadi B , di mana:
insert(char, offset)
menyisipkanchar
pada yang diberikanoffset
dalam stringmove(from_offset, to_offset)
memindahkan karakter saat ini di offsetfrom_offset
ke posisi baru sehingga telah diimbangito_offset
delete(offset)
menghapus karakter dioffset
Contoh aplikasi: Anda melakukan kueri basis data dan menunjukkan hasilnya di situs web Anda. Kemudian, Anda menjalankan kembali kueri basis data dan menemukan bahwa hasilnya telah berubah. Anda ingin mengubah apa yang ada di halaman agar sesuai dengan apa yang ada di database menggunakan jumlah minimum operasi DOM. Ada dua alasan mengapa Anda menginginkan urutan operasi terpendek. Pertama, efisiensi. Ketika hanya beberapa catatan yang berubah, Anda ingin memastikan bahwa Anda melakukan daripada O ( n )Operasi DOM, karena mahal. Kedua, benar. Jika item dipindahkan dari satu posisi ke posisi lain, Anda ingin memindahkan node DOM terkait dalam satu operasi, tanpa menghancurkan dan membuatnya kembali. Kalau tidak, Anda akan kehilangan status fokus, konten <input>
elemen, dan sebagainya.
move
operasi, jadi Anda mungkin harus bervariasi ketika menafsirkan skor.