Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
24
Task/Levenshtein-distance/Nim/levenshtein-distance.nim
Normal file
24
Task/Levenshtein-distance/Nim/levenshtein-distance.nim
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import sequtils
|
||||
|
||||
proc levenshteinDistance(s1, s2): int =
|
||||
var (s1, s2) = (s1, s2)
|
||||
|
||||
if s1.len > s2.len:
|
||||
swap s1, s2
|
||||
|
||||
var distances = toSeq(0..s1.len)
|
||||
|
||||
for i2, c2 in s2:
|
||||
var newDistances = @[i2+1]
|
||||
for i1, c1 in s1:
|
||||
if c1 == c2:
|
||||
newDistances.add(distances[i1])
|
||||
else:
|
||||
newDistances.add(1 + min(distances[i1], distances[i1+1],
|
||||
newDistances[newDistances.high]))
|
||||
|
||||
distances = newDistances
|
||||
result = distances[distances.high]
|
||||
|
||||
echo levenshteinDistance("kitten","sitting")
|
||||
echo levenshteinDistance("rosettacode","raisethysword")
|
||||
Loading…
Add table
Add a link
Reference in a new issue