diff options
Diffstat (limited to 'rust/examples/dwarf/dwarf_export/src/edit_distance.rs')
| -rw-r--r-- | rust/examples/dwarf/dwarf_export/src/edit_distance.rs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/rust/examples/dwarf/dwarf_export/src/edit_distance.rs b/rust/examples/dwarf/dwarf_export/src/edit_distance.rs deleted file mode 100644 index 9f135451..00000000 --- a/rust/examples/dwarf/dwarf_export/src/edit_distance.rs +++ /dev/null @@ -1,44 +0,0 @@ -pub(crate) fn distance(a: &str, b: &str) -> usize { - if a == b { - return 0; - } - match (a.chars().count(), b.chars().count()) { - (0, b) => return b, - (a, 0) => return a, - // (a_len, b_len) if a_len < b_len => return distance(b, a), - _ => (), - } - - let mut result = 0; - let mut cache: Vec<usize> = (1..a.chars().count() + 1).collect(); - - for (index_b, char_b) in b.chars().enumerate() { - result = index_b; - let mut distance_a = index_b; - - for (index_a, char_a) in a.chars().enumerate() { - let distance_b = if char_a == char_b { - distance_a - } else { - distance_a + 1 - }; - - distance_a = cache[index_a]; - - result = if distance_a > result { - if distance_b > result { - result + 1 - } else { - distance_b - } - } else if distance_b > distance_a { - distance_a + 1 - } else { - distance_b - }; - - cache[index_a] = result; - } - } - result -} |
