第18回オフラインリアルタイムどう書くの参考問題を Haskell で解く
第18回オフラインリアルタイムどう書くの参考問題 を解きました。
foldBase val (x:xs)
| x == 'F' = val ++ foldBase val xs
| x == 'R' = reverse(invert val) ++ foldBase val xs
| otherwise = x : foldBase val xs
foldBase _ [] = ""
invert ('F':xs) = 'R' : invert xs
invert ('R':xs) = 'F' : invert xs
invert ('m':xs) = 'V' : invert xs
invert ('V':xs) = 'm' : invert xs
invert [] = ""
foldL = foldBase "RVF"
foldJ = foldBase "FVR"
foldZ = foldBase "FmRVF"
foldU = foldBase "RVFVR"
foldS = foldBase "FVRmF"
filter' = filter(\x -> x == 'm' || x == 'V')
foldX x
| x == 'L' = foldL
| x == 'J' = foldJ
| x == 'Z' = foldZ
| x == 'U' = foldU
| x == 'S' = foldS
solve xs = filter' $ foldl (\acc x -> foldX x acc) "F" xs
test input expected
| solve input == expected = putStrLn "OK"
| otherwise = putStrLn $ "NG : " ++ input
main = do
test "JZ" "mVVmV"
test "J" "V"
test "L" "V"
test "Z" "mV"
test "U" "VV"
test "S" "Vm"
test "JL" "VVm"
test "JS" "VmVVm"
test "JU" "VVVmm"
test "LU" "mmVVV"
test "SL" "VVmmV"
test "SS" "VmVVmmVm"
test "SU" "VVVmmmVV"
test "SZ" "mVVmVmmV"
test "UL" "mVVVm"
test "UU" "mmVVVVmm"
test "UZ" "mVVmVVmV"
test "ZJ" "VmmVV"
test "ZS" "VmmVmVVm"
test "ZZ" "mVmmVVmV"
test "JJJ" "VVmVVmm"
test "JJZ" "mVVmVVmVmmV"
test "JSJ" "VVmmVVmVVmm"
test "JSS" "VmVVmmVmVVmVVmmVm"
test "JUS" "VmVVmVVmVVmmVmmVm"
test "JUU" "mmVVVVmmVVVmmmmVV"
test "JUZ" "mVVmVVmVVmVmmVmmV"
test "LJJ" "VmmVVVm"
test "LLS" "VmmVmVVmVVm"
test "LLU" "mmmVVVmmVVV"
test "LLZ" "mVmmVVmVVmV"
test "LSU" "mmVVVmmmVVVVmmmVV"
test "LSZ" "mVVmVmmVVmVVmVmmV"
test "LZL" "mmVVmVVmmVV"
test "LZS" "VmmVmVVmVVmmVmVVm"
test "LZU" "mmmVVVmmVVVmmmVVV"
test "SJL" "VVmVVmmmVVm"
test "SLU" "mmVVVVmmmVVmmmVVV"
test "SLZ" "mVVmVVmVmmVmmVVmV"
test "SSU" "VVVmmmVVVmmVVVmmmmVVVmmmVV"
test "SUJ" "mVVVmVVmmmVmmVVVm"
test "SUS" "VmVVmVVmVVmmVmmVmmVmVVmVVm"
test "SZZ" "mVmmVVmVVmVmmVVmVmmVmmVVmV"
test "UJJ" "VmmVVVmVVmm"
test "ULU" "mmmVVVmmVVVVmmmVV"
test "ULZ" "mVmmVVmVVmVVmVmmV"
test "UUU" "VVmmmmVVVmmVVVVmmVVVmmmmVV"
test "ZJU" "VVVmmmVVmmmVVVVmm"
test "ZLS" "VmVVmmVmmVmVVmVVm"
test "ZSJ" "VVmmVmmVVmmVVVmmV"
test "ZUJ" "mVVVmmVmmmVVmVVVm"
test "JJLJ" "mVVVmmVVmVVmmmV"
test "JLJJ" "VmmVVVmVVmmmVVm"
test "JLJL" "VmmVVVmVVmmmVVm"
test "LJJL" "VVmmVmmVVVmVVmm"
test "LLJJ" "VmmmVVmVVmmVVVm"
test "SZUS" "VmVVmVVmmVmmVmmVmVVmVVmVVmVVmmVmmVmmVmVVmVVmVVmmVmmVmmVmVVmVVmmVmmVmmVmVVmVVmVVm"
test "ULLS" "VmmVmmVmVVmVVmmVmVVmVVmVVmmVmmVmVVm"
test "JJJJZJ" "VmmVVVmmVVmVVmmVVmmmVVmVVmmVVVmmVVmmVmmVVmmmVVmVVmmVVVmmVVmVVmmVVmmmVVmmVmmVVVmmVVmmVmmVVmmmVVm"
test "JULLLJ" "mmVmmVVmmmVVmVVVmmVmmVVVmmVVmVVVmmVmmVVmmmVVmVVVmmVmmVVVmmVVmVVmmmVmmVVmmmVVmVVmmmVmmVVVmmVVmVV"
test "LJJJUL" "mVVVmVVmmmVVmVVVmmVmmmVmmVVVmVVmmmVmmVVVmmVmmmVVmVVVmVVmmmVVmVVVmmVmmmVVmVVVmVVmmmVmmVVVmmVmmmV"
test "LJSJJL" "VVmVVmmVVVmmVmmmVVmVVmmmVVmmVmmVVVmVVmmmVVmmVmmVVVmVVmmVVVmmVmmmVVmVVmmVVVmmVmmVVVmVVmmmVVmmVmm"
test "LZLLLJ" "mmVmmVVmmmVVmVVmmmVmmVVVmmVVmVVVmmVmmVVmmmVVmVVVmmVmmVVVmmVVmVVmmmVmmVVmmmVVmVVVmmVmmVVVmmVVmVV"
test "SJJJJL" "VVmVVmmVVVmmVmmVVVmVVmmmVVmmVmmVVVmVVmmVVVmmVmmmVVmVVmmmVVmmVmmmVVmVVmmVVVmmVmmVVVmVVmmmVVmmVmm"
test "ZLJLJL" "VmmVVVmmVmmmVVmVVmmVVVmVVmmmVVmmVmmVVVmmVmmmVVmmVmmVVVmVVmmmVVmVVmmVVVmmVmmmVVmVVmmVVVmVVmmmVVm"
Author And Source
この問題について(第18回オフラインリアルタイムどう書くの参考問題を Haskell で解く), 我々は、より多くの情報をここで見つけました https://qiita.com/mtsmfm/items/9c567d40b315046cc8e6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .