誰かが括弧のバランス問題のアルゴリズムを説明してくれませんか?
「かっこの対が一致しているため、文字列 (コード) の構文は正しいですか?」
アルゴリズムが true を返すには、" ( " ごとに別の " ) " が必要であるという事実を除けば、それを理解することはできません。
ありがとう!
この解決策を見つけましたが、理解できず、コピーして貼り付けたくありません。
def balance(chars: List[Char]): Boolean = {
def balanced(chars: List[Char], open: Int): Boolean = {
if (chars.isEmpty) open == 0
else
if (chars.head == '(') balanced(chars.tail,open+1)
else
if (chars.head == ')') open>0 && balanced(chars.tail,open-1)
else balanced(chars.tail,open)
}
balanced(chars,0)
}