Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import qualified Data.Char as Char
- import qualified Data.Map as Map
- main :: IO()
- main = do
- putStrLn challenge9
- -- Must read the input from a file.
- challenge9 = solve Map.empty 0 . map (head) . words $ "5\na\nn\n7\n4\nn\n6\n1\n0\ny\nw\na"
- where
- solve :: Map.Map Char Int -> Int -> String -> String
- solve alpha sumdig [] = "Sum = " ++ (show sumdig) ++ "\n" ++ (unlines . map (\(x,y) -> show x ++ " = " ++ show y) $ Map.toList alpha)
- solve alpha sumdig (x:xs) | Char.isLower x = case Map.lookup x alpha of
- Just n -> solve (Map.insert x (n+1) alpha) sumdig xs
- Nothing -> solve (Map.insert x 1 alpha) sumdig xs
- | Char.isDigit x = solve alpha (Char.digitToInt x + sumdig) xs
- | otherwise = solve alpha sumdig xs
Advertisement
Add Comment
Please, Sign In to add comment