Haskell - 函数检查括号内的平衡

use*_*326 0 haskell

我必须在Haskell中编写一个函数来检查包含开括号和闭括号的字符串是否平衡.对于每个打开的括号,必须有一个关闭,空字符串也被认为是平衡的.

Ex. (()) is balanced
(())) is not balanced.
()(()) is balanced.
()(())) is not balanced.
Run Code Online (Sandbox Code Playgroud)

谢谢

use*_*648 6

一般来说,算一算.如果你看到a增加(如果你看到a则递减).如果计数在任何地方变为负数或在结束时不为零,那么你注定要失败.否则它是平衡的.

  • 不,当你看到)数量变为负数.因此,你注定要失败.计数永远不应该是负数,最后应该为零 (3认同)
  • 我会在`Maybe`或`Either e` monad中找到`foldM`,然后是`fmap(0 ==)`,`(Just 0 ==)`或`(Right 0 ==)`. (2认同)