All N Length Strings from Given String of Length K

Objective: Print All N Length Strings from Given String of Length K where characters can appear multiple time.

Example:

String k = "ALGO"
N=2

Result:
AA LA GA OA AL LL GL OL AG LG GG OG AO LO GO OO

 

Approach:

This problem is quite similar to Print All N Length Strings from Given Number K.

  • Loop through i = 1 to K.
  • Add k[i] to the result Array, which is the size N and make a recursive call to (N-1).
  • Base case: when n becomes 0 (means array is full).
  • See the code for better explanation.

Code:

public class NLengthStringFromKLength {
public void print(int n, char[] k, char[] A) {
if (n <= 0) {
System.out.print(String.valueOf(A) + " ");
} else {
for (int i = 0; i < k.length; i++) {
A[n 1] = k[i];
print(n 1, k, A);
}
}
}
public static void main(String[] args) {
String k = "ALGO";
int n = 2;
NLengthStringFromKLength i = new NLengthStringFromKLength();
i.print(n, k.toCharArray(), new char[n]);
}
}

Output:

AA LA GA OA AL LL GL OL AG LG GG OG AO LO GO OO