Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,16 @@
|
|||
import Data.Ord (comparing)
|
||||
import Data.List (maximumBy, intersect)
|
||||
|
||||
subStrings :: [a] -> [[a]]
|
||||
subStrings s =
|
||||
let intChars = length s
|
||||
in [ take n $ drop i s
|
||||
| i <- [0 .. intChars - 1]
|
||||
, n <- [1 .. intChars - i] ]
|
||||
|
||||
longestCommon :: Eq a => [a] -> [a] -> [a]
|
||||
longestCommon a b =
|
||||
maximumBy (comparing length) (subStrings a `intersect` subStrings b)
|
||||
|
||||
main :: IO ()
|
||||
main = putStrLn $ longestCommon "testing123testing" "thisisatest"
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import Control.Monad ((<=<))
|
||||
import Data.List (inits, intersect, maximumBy, tails)
|
||||
import Data.Ord (comparing)
|
||||
|
||||
----------------- LONGEST COMMON SUBSTRING ---------------
|
||||
|
||||
longestCommon :: Eq a => [a] -> [a] -> [a]
|
||||
longestCommon a b =
|
||||
let pair [x, y] = (x, y)
|
||||
in maximumBy (comparing length) $
|
||||
(uncurry intersect . pair) $
|
||||
[tail . inits <=< tails] <*> [a, b]
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
putStrLn $
|
||||
longestCommon "testing123testing" "thisisatest"
|
||||
Loading…
Add table
Add a link
Reference in a new issue