我正在写一个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
}
}
在之前的评论:
或忽略'brace.get(stack.pop)'**但是**'brace.isEmpty'看起来应该是'stack.isEmpty '...但这不应该是你的函数背后的错误一直返回'false' – olydis
你的代码**对我来说顺手! – olydis
这很奇怪,你有没有试过其他的输入法,例如'')))“,”(){}(]“,”({}(])“'? –