私は答えを見ずにコーディングの質問をしていますし、私は私の思考プロセスと間違っている括弧の有効なペアが見つかりませんか?
質問がカッコ
public class Foo{
public void printCombinations(String prefix, int open, int close, int n){
if (open > n) {
return;
}
if (close > n) {
return;
}
if (open == n && close == n){
System.out.println(prefix);
return;
}
printCombinations(prefix + "(", open + 1, close, n);
printCombinations(prefix + ")", open, close + 1, n);
}
public static void main(String []args){
HelloWorld w = new HelloWorld();
w.printCombinations("", 0, 0, 3);
}
}
の有効なn個のペアのすべての組み合わせを見つけることであるものを見つけるのに苦労しています
このプログラムを実行したとき、有効なかっこ付きのものではなくすべての組み合わせが表示されたようです。私は考えていたprintCombinations(prefix + "(", open + 1, close, n);
は、私は最初の開き括弧を再帰的にprintCombinations(prefix + ")", open, close + 1, n);
)))(((
のようなものと1つの出力を参照して呼び出しを印刷することを確認します。 (
が最初に追加された場合、これはどのように可能ですか?
申し訳ありませんが、私はそれがよく見えませんでしたので、私はそれを修正しました:p – loki