두 개의 줄이 있다고 가정하십시오. 그들을 와 부릅니다 . 두 문자열 모두 반복되는 문자가 없습니다.
를 로 바꾸는 가장 짧은 삽입, 이동 및 삭제 작업 순서를 어떻게 찾을 수 있습니까?
insert(char, offset)
char
주어진offset
문자열에 삽입move(from_offset, to_offset)
현재 오프셋from_offset
에있는 문자 를 새로운 위치 로 이동하여 오프셋 을 갖습니다.to_offset
delete(offset)
에서 문자를 삭제합니다offset
응용 프로그램 예 : 데이터베이스 쿼리를 수행하고 웹 사이트에 결과를 표시합니다. 나중에 데이터베이스 쿼리를 다시 실행하고 결과가 변경되었음을 알 수 있습니다. 최소 DOM 조작 수를 사용하여 현재 데이터베이스에있는 내용과 일치하도록 페이지에있는 내용을 변경하려고합니다. 가장 짧은 작업 순서를 원하는 데는 두 가지 이유가 있습니다. 첫째, 효율성. 레코드가 몇 개만 변경되면 오히려 DOM 조작은 비싸기 때문에. 둘째, 정확성. 항목이 한 위치에서 다른 위치로 이동 한 경우 연결된 DOM 노드를 파괴하거나 다시 만들지 않고 단일 작업으로 이동하려고합니다. 그렇지 않으면 포커스 상태, <input>
요소 의 내용 등이 손실 됩니다.