Ich arbeite an folgenden CodingBat problem:Leeres Ergebnis in einem rekursiven Java Aufruf
einen String gegeben, dass ein einzelnes Paar von Klammern enthält, berechnet rekursiv eine neue Zeichenfolge aus nur der Klammer und dessen Inhalts , so ergibt "xyz (abc) 123" "(abc)".
parenBit("xyz(abc)123") → "(abc)" parenBit("x(hello)") → "(hello)" parenBit("(xy)1") → "(xy)"
ich 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 genannt:
wow (These)
ich leere Ergebnisse. Wie kann ich das beheben?
Sicher mit dem rep, würden Sie wissen, nicht nur, um uns ein Problem und nicht versuchen, es selbst zu debuggen. Auch nehmen wir keine Aufgaben .. – Li357
@AndrewL. Es ist keine Aufgabe, es ist ein quesiotn online Ich versuche rekursiv zu lernen –
Was sind Ihre Versuche, das Programm zu debuggen? – Li357