括弧のバランスを判定するためには、スタックというデータ構造を使用する方法が一般的です。アルゴリズムの基本的な考え方は、開き括弧と閉じ括弧の対応関係を確認することです。以下に、このアルゴリズムの手順を示します。
- 文字列を一つずつ処理します。
- 文字が開き括弧(例えば、'('、'['、'{')であれば、スタックに追加します。
- 文字が閉じ括弧(例えば、')'、']'、'}')であれば、スタックの一番上の要素を取り出します。
- スタックが空であれば、括弧がバランスしていないと判定します。
- スタックの一番上の要素と閉じ括弧が対応していない場合も、括弧がバランスしていないと判定します。
- 全ての文字を処理した後、スタックが空であれば、括弧がバランスしていると判定します。そうでなければ、括弧がバランスしていないと判定します。
以下に、Pythonのコード例を示します。
def is_balanced(expression):
stack = []
opening_brackets = ['(', '[', '{']
closing_brackets = [')', ']', '}']
for char in expression:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack:
return False
top = stack.pop()
if opening_brackets.index(top) != closing_brackets.index(char):
return False
return len(stack) == 0
上記の例では、is_balanced
関数を使用して括弧のバランスを判定することができます。関数に判定したい文字列を渡し、True
またはFalse
を返します。
この方法を使用すると、括弧のバランスを簡単かつ効率的に判定することができます。さまざまなプログラミング言語でも同様の手法が適用できるので、必要に応じて適切な言語で実装してください。
以上が、括弧のバランスを判定する方法とコード例の説明です。