我正在寫一個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
這很奇怪,你有沒有試過其他的輸入法,例如'')))「,」(){}(]「,」({}(])「'? –