2011-09-21 6 views
0

에 이동 된 의해 선 및 문자 수를 있나요 찾기?일부 알고리즘 (또는 자바 스크립트 구현)라는 단어가 포함 된 문자열이 변경되었을 때 단어의 위치에 변화의 양을 찾을 수를 인덱스가 문자열 변화

나의 프로젝트는 내가하는 재 위치 새로운 데이터가 MobWrite 협업 서비스를 사용하여 코드에 추가 된 커서를 필요로하는 곳에 CodeMirror를 기반으로하는 온라인 편집기입니다.

따라서 커서 위치를 현재 사용자가 편집중인 단어로 설정하려면 해당 위치의 시프트 양을 계산해야한다고 생각합니다. & 원래 커서 위치에 추가하십시오.

솔루션 : 이제 MobWrite에서 사용하는 방법을 구현하려고합니다.

도움 주셔서 감사합니다. 해당 페이지에 http://en.wikipedia.org/wiki/Levenshtein_distance

다른 거리의 종류 :

+0

당신은 당신을 위해 무엇을 찾고있는 몇 가지 예제를 줄 수 있을까? 원래 문자열, 변경된 문자열, 결과. 그렇지 않으면 Levenshtein 거리가 당신이 얻을 수있는 유일한 대답이며 그것은 그것이 당신이 원하는 것인지 확실하지 않습니다. –

+0

@WladimirPalant, 공동 편집자이기 때문에 데이터가 계속 변경되므로 커서의 위치를 ​​현재 사용자가 입력 한 것과 일관되게 유지해야합니다. – Sathvik

답변

1

당신은 아마이 원하는. 그들이 당신의 필요를 더 잘 충족시키는 지 확인하십시오.

+0

레브의 거리를 어떻게 사용할 수 있을지 나는 명확하지 않다. – Sathvik

+0

@ user937891 : Levenshtein 알고리즘을 사용하면 이전 텍스트를 새 텍스트로 변환하고 실제로 이러한 작업을 수행하는 데 필요한 작업 수를 계산할 수 있습니다. 따라서 삽입되거나 제거 된 텍스트 부분을 찾아서 그에 따라 커서 위치를 조정할 수 있습니다. –

+0

추가 및 삭제 만 포함하는 변형 (가장 긴 공통 하위 시퀀스)을 사용합니다. 그런 다음 커서를 움직여야합니다. – Ariel