Merge pull request #1075 from flaviut/inlinedocs
Add some documentations and code examples in system
This commit is contained in:
commit
a690e7b267
71 changed files with 2521 additions and 15 deletions
26
tests/misc/tstrdist.nim
Normal file
26
tests/misc/tstrdist.nim
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# compute the edit distance between two strings
|
||||
|
||||
proc editDistance(a, b: string): int =
|
||||
var
|
||||
c: seq[int]
|
||||
n = a.len
|
||||
m = b.len
|
||||
newSeq(c, (n+1)*(m+1))
|
||||
for i in 0..n:
|
||||
c[i*n] = i # [i,0]
|
||||
for j in 0..m:
|
||||
c[j] = j # [0,j]
|
||||
|
||||
for i in 1..n:
|
||||
for j in 1..m:
|
||||
var x = c[(i-1)*n + j]+1
|
||||
var y = c[i*n + j-1]+1
|
||||
var z: int
|
||||
if a[i-1] == b[j-1]:
|
||||
z = c[(i-1)*n + j-1]
|
||||
else:
|
||||
z = c[(i-1)*n + j-1]+1
|
||||
c[(i-1)*n + (j-1)] = min(x,min(y,z))
|
||||
return c[n*m]
|
||||
|
||||
write(stdout, editDistance("abc", "abd"))
|
||||
Loading…
Add table
Add a link
Reference in a new issue