summaryrefslogtreecommitdiff
path: root/src/utils/levenshtein_distance.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/levenshtein_distance.rs')
-rw-r--r--src/utils/levenshtein_distance.rs34
1 files changed, 0 insertions, 34 deletions
diff --git a/src/utils/levenshtein_distance.rs b/src/utils/levenshtein_distance.rs
deleted file mode 100644
index 6bdb7e7..0000000
--- a/src/utils/levenshtein_distance.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-use std::cmp::min;
-
-pub fn levenshtein_distance(a: &str, b: &str) -> usize {
- let a_chars: Vec<char> = a.chars().collect();
- let b_chars: Vec<char> = b.chars().collect();
- let a_len = a_chars.len();
- let b_len = b_chars.len();
-
- if a_len == 0 {
- return b_len;
- }
- if b_len == 0 {
- return a_len;
- }
-
- let mut dp = vec![vec![0; b_len + 1]; a_len + 1];
-
- for (i, row) in dp.iter_mut().enumerate() {
- row[0] = i;
- }
-
- for (j, cell) in dp[0].iter_mut().enumerate() {
- *cell = j;
- }
-
- for (i, a_char) in a_chars.iter().enumerate() {
- for (j, b_char) in b_chars.iter().enumerate() {
- let cost = if a_char == b_char { 0 } else { 1 };
- dp[i + 1][j + 1] = min(dp[i][j + 1] + 1, min(dp[i + 1][j] + 1, dp[i][j] + cost));
- }
- }
-
- dp[a_len][b_len]
-}