I have an array of characters c[][] with different mappings to each index. For example:
{'a', 'b', 'c', 'd', 'e', 'f' } {'g', 'h', 'i' }
I need to return all the possible character combinations for this array as a string. That meaning, for the above character array, I should return: "ag", "ah", "ai", "bg", "bh", "bi", "cg", "ch", "ci", etc. It would be easy to do this for a character array of only two things like above, but if there are more arrays, then I do not know what to do... Which is what I am asking you all to help me with! :)
For two arrays two nested loops should do:
for (int i = 0 ; i != c[0].length ; i++) {
for (int j = 0 ; j != c[1].length ; j++) {
System.out.writeln(""+c[0][i]+c[1][j]);
}
}
For more nesting you would need a recursive or an equivalent stack-based solution.
void combos(int pos, char[][] c, String soFar) {
if (pos == c.length) {
System.out.writeln(soFar);
return;
}
for (int i = 0 ; i != c[pos].length ; i++) {
combos(pos+1, c, soFar + c[pos][i]);
}
}
Call this recursive function from your main()
like this:
combos(0, c, "");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With