Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -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"

View file

@ -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"