Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,9 @@
|
|||
levenshtein :: Eq a => [a] -> [a] -> Int
|
||||
levenshtein s1 s2 = last $ foldl transform [0 .. length s1] s2
|
||||
where
|
||||
transform ns@(n:ns1) c = scanl calc (n + 1) $ zip3 s1 ns ns1
|
||||
where
|
||||
calc z (c1, x, y) = minimum [y + 1, z + 1, x + fromEnum (c1 /= c)]
|
||||
|
||||
main :: IO ()
|
||||
main = print (levenshtein "kitten" "sitting")
|
||||
12
Task/Levenshtein-distance/Haskell/levenshtein-distance-2.hs
Normal file
12
Task/Levenshtein-distance/Haskell/levenshtein-distance-2.hs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
levenshtein :: Eq a => [a] -> [a] -> Int
|
||||
levenshtein s1 [] = length s1
|
||||
levenshtein [] s2 = length s2
|
||||
levenshtein s1@(s1Head:s1Tail) s2@(s2Head:s2Tail)
|
||||
| s1Head == s2Head = levenshtein s1Tail s2Tail
|
||||
| otherwise = 1 + minimum [score1, score2, score3]
|
||||
where score1 = levenshtein s1Tail s2Tail
|
||||
score2 = levenshtein s1 s2Tail
|
||||
score3 = levenshtein s1Tail s2
|
||||
|
||||
main :: IO ()
|
||||
main = print (levenshtein "kitten" "sitting")
|
||||
Loading…
Add table
Add a link
Reference in a new issue