【发布时间】:2019-07-24 09:39:53
【问题描述】:
对于 java 实践,我正在尝试编写一个类,该类在字符数组中生成所有字母组合并将它们放入字符串数组中。 该对象应使用字符数组构建,并且应具有将 int 作为输入的方法。 int 将确定组合的长度。
例如,输入:
char[] charArray = { 'a', 'b' };
int k = 3;
输出:
[ "aaa", "aab", "aba", "abb", "baa", "bab", "bba", "bbb" ]
该方法应该是递归的,每次它应该用 k-1 调用自己。
我尝试了一个简化版本,生成了一个字符串,其中所有排列都用下划线分隔,但我没有得到我想要的输出。
public String generate(int k) {
if (k == 0) return "_";
String s = "";
for (char c : charArray) {
s = s+c+generate(k-1);
}
return s;
}
我的输出是:
"aaa_b_ba_b_baa_b_ba_b_"
代替:
"aaa_aab_aba_abb_baa_bab_bba_bbb"
【问题讨论】:
标签: java arrays string algorithm recursion