交换角色,Haskell

时间:2014-12-22 16:24:40

标签: haskell

如果str =" abcdpqrs",那么我们必须将位置{(0,1),(2,3),(4,5),(6,7)}中的字符交换为L = 8.所以答案将是" badcqpsr"。

我的算法可以解决问题:

输入是:

2
abcdpqrs
az

我的输出是:

"2"
"badcqpsr"
"za"

第一个输入行是要遵循的一些测试用例。我想跳过这个号码。我怎么能这样做?我如何删除括号?

我的代码:

rev (a : b : xs) = b : a : rev xs
rev xs = xs

main = do
    l <- getLine
    print (rev l)
    main

1 个答案:

答案 0 :(得分:2)

import Control.Monad

main = readLn >>= \n -> replicateM_ n $ getLine >>= putStrLn . rev

即。将第一行读为数字n,然后执行getLine >>= putStrLn . rev n次操作。