สมมติว่าฉันมีสองสาย โทรหาพวกเขา และ . ไม่มีสตริงที่มีอักขระซ้ำ ๆ กัน
ฉันจะค้นหาลำดับการแทรกย้ายและลบที่สั้นที่สุดที่เปลี่ยนไปได้อย่างไร เข้าไป ที่ไหน:
insert(char, offset)
แทรกchar
ที่กำหนดoffset
ในสตริงmove(from_offset, to_offset)
ย้ายอักขระปัจจุบันที่ออฟเซ็ตfrom_offset
ไปยังตำแหน่งใหม่เพื่อให้ออฟเซ็ตto_offset
delete(offset)
ลบอักขระที่offset
แอปพลิเคชันตัวอย่าง: คุณทำการสืบค้นฐานข้อมูลและแสดงผลลัพธ์บนเว็บไซต์ของคุณ ในภายหลังคุณรันการสืบค้นฐานข้อมูลอีกครั้งและค้นพบว่าผลลัพธ์มีการเปลี่ยนแปลง คุณต้องการเปลี่ยนสิ่งที่อยู่บนหน้าเพื่อให้ตรงกับสิ่งที่อยู่ในฐานข้อมูลโดยใช้การดำเนินการ DOM ขั้นต่ำ มีสองเหตุผลที่คุณต้องการให้ลำดับการทำงานสั้นที่สุด ครั้งแรกที่มีประสิทธิภาพ เมื่อมีการเปลี่ยนแปลงระเบียนเพียงไม่กี่คุณต้องการให้แน่ใจว่าคุณทำ ค่อนข้างมากกว่า การทำงานของ DOM เนื่องจากมีราคาแพง ประการที่สองความถูกต้อง หากรายการถูกย้ายจากตำแหน่งหนึ่งไปอีกตำแหน่งหนึ่งคุณต้องการย้ายโหนด DOM ที่เกี่ยวข้องในการดำเนินการครั้งเดียวโดยไม่ต้องทำลายและสร้างใหม่อีกครั้ง มิฉะนั้นคุณจะสูญเสียสถานะโฟกัสเนื้อหาของ<input>
องค์ประกอบและอื่น ๆ