【发布时间】:2019-02-07 02:43:31
【问题描述】:
我正在尝试解决在 Haskell 中进行函数式编程练习的问题。我必须实现一个函数,给定一个包含偶数个字符的字符串,该函数返回相同的字符串并交换了字符对。
像这样:
“helloworld”->“ehllworodl”
这是我当前的实现:
swap :: String -> String
swap s = swapRec s ""
where
swapRec :: String -> String -> String
swapRec [] result = result
swapRec (x:y:xs) result = swapRec xs (result++[y]++[x])
我的函数返回正确的结果,但是编程练习是定时的,而且我的代码似乎运行得太慢了。
我可以做些什么来让我的代码运行得更快,或者我使用了错误的方法来解决问题?
【问题讨论】:
-
是的,不要使用
(++),因为它需要O(n)。
标签: haskell