Leeres Ergebnis in einem rekursiven Java-Aufruf

Ich arbeite an folgendemCodingBat Problem:

Berechnen Sie eine Zeichenfolge, die ein einzelnes Klammerpaar enthält, rekursiv eine neue Zeichenfolge, die nur aus der Klammer und ihrem Inhalt besteht, sodass "xyz (abc) 123" "(abc)" ergibt.

parenBit("xyz(abc)123") → "(abc)"
parenBit("x(hello)") → "(hello)"
parenBit("(xy)1") → "(xy)"

Ich habe versucht, es so zu lösen:

import java.util.LinkedList;
import java.util.List;

public class ParenBit {
    public static void main(String arg[]) {
        ParenBit p = new ParenBit();
        p.solve(arg[0], '(', "");
        System.out.println(p.finalResult.toString());
    }

    private List<String> finalResult = new LinkedList<String>();

    private boolean solve(String s, char c, String result) {
        if (s.length() == 0)
            return false;
        char f = s.charAt(0);
        if (f == '(') {
            boolean b = solve(s.substring(1), ')', result);
            if (b) {
                result += f + "";
            }
            if (f == c)
                return true;
        } else if (f == ')') {
            if (c == f) {
                result += f + "";
                finalResult.add(result);
                solve(s.substring(1), '(', "");
                return true;
            }
        } else {
            if (c == ')') {
                boolean b = solve(s.substring(1), ')', result);
                if (b) {
                    result += f + "";
                }
            } else if (c == '(') {
                return solve(s.substring(1), '(', result);
            }
        }
        return false;
    }
}

Wenn ich es mit diesem Eingang aufgerufen habe:

wow (Abschlussarbeit)

Ich erhalte leere Ergebnisse. Wie kann ich das beheben?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage