Hallo, habe folgendes Problem:
Ich möchte als Eingabe in der Konsole einen String und eine Zahl. Danach rekursiv alle möglichen Teilsequenzen davon finden.
Habe folgendes überlegt:
Wenn ich nun jedoch als Input "Hund" nehme mit num = 2 sollte ich ja bekommen:
hu hn hd un ud nd
Jedoch erhalte ich nur:
hu un un nd
Ich geh davon aus, dass bei den rekursiven Aufrufen bei input.substring die 2 Parameter noch falsch sind, komme jedoch nicht drauf wie ich mein Programm änderen muss um es korrekt zu bekommen.
Ich möchte als Eingabe in der Konsole einen String und eine Zahl. Danach rekursiv alle möglichen Teilsequenzen davon finden.
Habe folgendes überlegt:
Java:
import java.util.Scanner;
public class Teilfolgen {
public static int num;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("enter a string");
String input = sc.next();
System.out.println("enter a non negative integer");
num = sc.nextInt();
if (num < 0) {
System.out.println("incorrect input");
}
findeTeilfolgen(input);
}
public static void findeTeilfolgen(String input) {
if (num == input.length()) {
System.out.println(input);
} else {
findeTeilfolgen(input.substring(0, input.length() - 1));
findeTeilfolgen(input.substring(1, input.length()));
}
}
}
Wenn ich nun jedoch als Input "Hund" nehme mit num = 2 sollte ich ja bekommen:
hu hn hd un ud nd
Jedoch erhalte ich nur:
hu un un nd
Ich geh davon aus, dass bei den rekursiven Aufrufen bei input.substring die 2 Parameter noch falsch sind, komme jedoch nicht drauf wie ich mein Programm änderen muss um es korrekt zu bekommen.