括号在scala中平衡

时间:2013-03-30 19:53:29

标签: scala

我得到了一个使用scala平衡括号的作业。我写了这段代码:

def balance(chars: List[Char]): Boolean = {

def check(sent: List[Char], count: Int): Int =
  if (sent.isEmpty)
    count
  else if (sent.head == '(')
    check(sent.tail, count + 1)
  else if (sent.head == ')')
    check(sent.tail, count - 1)
  else
    check(sent.tail, count)

     check(chars, 0) == 0 }

但此代码在"())("中失败 任何想法实现这个代码是正确的吗?

1 个答案:

答案 0 :(得分:5)

不提供任何代码,只是澄清可能的规范。您的所有代码都在计算右侧和左侧的数量,并确保它们是相等的。这是一个必要条件,但还不够。对于平衡括号,您还需要显示当您浏览字符串时,'(您看到的'的数量必须始终大于或等于'的数量)。