中括弧の文字列を受け取り、カッコが一致する場合はtrueを返し、一致しない場合はfalseを返すメソッドを作成しようとしています。ブール代数が一致すると真を返すメソッド
これらブラケットマッチングの例である:
{}
{} {}
{{}}
{{{{{}}}}
これは、一致しない角括弧の例です。
{
} {
{{}
{{}}} {}
私はこのコードの後ろに適切なロジックを把握することができません。私は最初にlength()mod 2を試しました。結果が0の場合にのみ、このメソッドはtrueを返します。しかし明らかにバグがありました。なぜなら、{}のような文字列であっても真実を返すからです。 {を検出するコードをいくつか追加し、見つからない場合は自動的にfalseを返します。しかし、私はまだ誤りを受けています。ここで
は私のコードです:
public boolean bracketsMatch(String brackets)
{
if(!(brackets.length() % 2 == 0))
{
int i = 0;
int j = 0;
boolean check = false;
while(brackets.charAt(i) == '{')
{
for(int o = i + 1; o < brackets.length(); o++)
{
if(o == '}')
{
check = true;
break;
}
else
{
j++;
}
}
if(check == false)
return false;
i + = j;
}
return true;
}
else
{
return false;
}
}
正しいこの問題のロジック、と私は何の間違いを作っていますでしょうか?ありがとう!
['CodeGolf'](http://codegolf.stackexchange.com/)を見てみてください。私はこのような論理が1つの投稿に表示されているのを見ました。 –
またはこれをテストケースとして使用するスタックに関するほとんどのチュートリアル。 – csmckelvey
あなたが探しているものは、 "Balanced括弧"と呼ばれ、ここで大雑把に見つけることができます。 http://stackoverflow.com/questions/14930073/how-to-check-if-a-string-is-balanced – Jan