文字列に一致する中かっこ、大かっこ、またはかっこがあるかどうかを確認したい。
For example:
{}
()
[]
スタックでできます。再帰でやりたい。私は同様の質問に対する回答を読んでいましたが、回答はスタックに再帰が混在していました。ユーザーは、再帰もスタックであるため、再帰メソッドのパラメーターにスタックを含める必要はないと言って、これらの回答に応答しました-これは私には理にかなっています。
ただし、大きな問題があります。文字列を逆方向に調べて、文字列が空になるまで最後にチェックした位置を常に削除しているので、true を返します。探しているものを保持するための追加のパラメーターをメソッドに追加せずに、特定の部分、ブレース、ブラケット、または括弧をチェックする方法を想像することはできません。それでも、これを行うためのより簡単な方法が必要であると私は考え続けています。
public boolean isBalanced(String in)
{
if(in.isEmpty())
return true;
if(in.charAt(in.length()) == '}')
{
return recIsBalanced(in.substring(0, in.length()));
}
else if(in.charAt(in.length()) == ']')
{
}
return recIsBalanced(in.substring(0, in.length()));
}