2016-06-29 1 views
-1

나는 길이가 같은 문자열과 비교하려고합니다. 그렇다면 나는 그들이 가지고있는 차이점을 셀 수 있습니다. 나는 손으로 그 일을 시작할 것입니다. 그러나 그런 방식의 도구 상자가 있기 때문에 어쨌든 발생하는 차이를 계산할 수있는 기능이 있는지 궁금합니다. 또는 요소를 계산할 수있는 컬렉션을 만드시겠습니까?두 문자열 사이의 차이 수를 반환하는 함수가 있습니까?

+0

당신이 편집 거리를 찾고 계십니까? 일반적으로 Levenshtein 알고리즘을 사용하여이를 계산하는 루틴을 제공하는 상자가 있습니다. – BurntSushi5

+0

아니, 당신은 할 수/하나 자신을 쓸 필요가 –

답변

2

구현은 간단하다 :

str_a.chars().zip(str_b.chars()).filter(|x| x.0!=x.1).count() 
4

strsim 상자를 사용할 수 있습니다. Hamming, Levenshtein, Damerau-Levenshtein, Jaro 및 Jaro-Winkler와 같은 다양한 문자열 차이 방법을 제공합니다. 저는 개인적으로 Damerau-Levenshtein의 차이점을 좋아합니다.이 차이점은 교체해야 할 인접한 문자의 수와 문자열 중 하나를 다른 문자열로 바꾸기 위해 제거, 삽입 또는 교체해야하는 문자 수를 계산합니다. 해밍 거리의

extern crate strsim; 
let difference = strsim::damerau_levenshtein(a, b); 
+0

할아버지가 정확히 내가 할 일이 될 것입니다 -하지만이 운동을 해결하기 위해 상자를 사용하여 좀 cheaty. 그러나 나는 그들의 해결책을 살펴볼 것이다. Mybe 내가 찾고있는 함수/방법을 찾을 수 있습니다. 고마워 – xetra11

관련 문제