1 entier DistanceDeLevenshtein(caractere chaine1[1..longueurChaine1],
2 caractere chaine2[1..longueurChaine2])
3 // D est un tableau de longueurChaine1+1 rangées et longueurChaine2+1 colonnes
4 // D est indexé à partir de 0, les chaînes à partir de 1
5 déclarer entier D[0..longueurChaine1, 0..longueurChaine2]
6 // i et j itèrent sur chaine1 et chaine2
7 déclarer entier i, j, coûtSubstitution
8
9 pour i de 0 à longueurChaine1
10
11
12
13
14 D
15 [
16 i
17 ,
18 0
19 ]
20 ]
21 :=
22 i
23
24
25 {\displaystyle D[i,0]]:=i}
26
27{\displaystyle D[i,0]]:=i}
28 pour j de 0 à longueurChaine2
29
30
31
32
33 D
34 [
35 0
36 ,
37 j
38 ]
39 ]
40 :=
41 j
42
43
44 {\displaystyle D[0,j]]:=j}
45
46{\displaystyle D[0,j]]:=j}
47
48 pour i de 1 à longueurChaine1
49 pour j de 1 à longueurChaine2
50 si chaine1[i] = chaine2[j] alors coûtSubstitution := 0
51 sinon coûtSubstitution:= 1
52
53
54
55
56 D
57 [
58 i
59 ,
60 j
61 ]
62 ]
63 :=
64
65
66 {\displaystyle D[i,j]]:=}
67
68{\displaystyle D[i,j]]:=} minimum(
69 D[i-1, j ] + 1, // effacement du nouveau caractère de chaine1
70 D[i, j-1] + 1, // insertion dans chaine2 du nouveau caractère de chaine1
71 D[i-1, j-1] + coûtSubstitution // substitution
72 )
73
74 renvoyer D[longueurChaine1, longueurChaine2]