gpt4 book ai didi

algorithm - 用于检查括号是否平衡的 Scala 代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:23 24 4
gpt4 key购买 nike

我正在编写一个 scala 函数来检查平衡括号。所以 "()","([]{})" 都是平衡的,但是 ")","(){[}]" 不平衡

下面是我编写的代码,应该可以正常工作。我不知道为什么它说我尝试的所有输入都是错误的。

package general

import scala.collection.mutable.Stack
import scala.collection.immutable.HashMap

object BalanceParen {
def main(args: Array[String]) {
print(isBalanced("()"));
}
def isBalanced(input: String): Boolean = {
val stack = new Stack[Char]
val brace = HashMap('(' -> ')', '[' -> ']', '{' -> '}')

input map (( ch: Char ) => {
if( brace contains ch ) stack push ch
else {
if( brace.isEmpty ) return false
if( brace.get(stack.pop) != ch ) return false
}
})
return stack.isEmpty
}
}

最佳答案

HashMapget 方法返回一个 Option,因此您的测试需要更改为如下内容:

if( brace.get(stack.pop) != Some(ch) ) return false

或:

if( brace.get(stack.pop).contains(ch) ) return false

关于algorithm - 用于检查括号是否平衡的 Scala 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com