File tree Expand file tree Collapse file tree 2 files changed +64
-1
lines changed
Expand file tree Collapse file tree 2 files changed +64
-1
lines changed Original file line number Diff line number Diff line change 11/**
22 * @author: Rajdeep Roy Chowdhury<rrajdeeproychowdhury@gmail.com>
33 * @github: https://github.com/razdeep
4- * @date: 24 /12/2018
4+ * @date: 31 /12/2018
55 */
66#include <stdio.h>
77#include <string.h>
Original file line number Diff line number Diff line change @@ -154,3 +154,66 @@ int main()
154154 return 0;
155155}
156156```
157+
158+ ### C Implementation
159+
160+ ### [Solution 1](./C/levenshtein_distance.c)
161+
162+ ```c
163+ /**
164+ * @author: Rajdeep Roy Chowdhury<rrajdeeproychowdhury@gmail.com>
165+ * @github: https://github.com/razdeep
166+ * @date: 31/12/2018
167+ */
168+ #include <stdio.h>
169+ #include <string.h>
170+
171+ int min(int x, int y, int z)
172+ {
173+ if (x <= y && x <= z)
174+ return x;
175+ else if (y <= x && y <= z)
176+ return y;
177+ else
178+ return z;
179+ }
180+
181+ int levenshtein_distance(const char *str1, const char *str2)
182+ {
183+ int m = strlen(str1);
184+ int n = strlen(str2);
185+ int ld[m + 1][n + 1];
186+
187+ for (int i = 0; i <= m; i++)
188+ {
189+ for (int j = 0; j <= n; j++)
190+ {
191+ if (i == 0)
192+ ld[i][j] = j;
193+
194+ else if (j == 0)
195+ ld[i][j] = i;
196+
197+ else if (str1[i - 1] == str2[j - 1])
198+ ld[i][j] = ld[i - 1][j - 1];
199+
200+ else
201+ ld[i][j] = 1 + min(ld[i][j - 1], ld[i - 1][j], ld[i - 1][j - 1]);
202+ }
203+ }
204+
205+ return ld[m][n];
206+ }
207+
208+ int main()
209+ {
210+ const int STRING_LENGTH=100;
211+ char str1[STRING_LENGTH], str2[STRING_LENGTH];
212+ scanf("%s%s",str1,str2);
213+
214+ printf("%d\n",levenshtein_distance(str1, str2));
215+
216+ return 0;
217+ }
218+
219+ ```
You can’t perform that action at this time.
0 commit comments