【发布时间】:2016-08-23 13:13:01
【问题描述】:
问题定义如下: 输入元素,假设 m
大集合,假设 {a, b, c, d, ..z}
我想找到包含输入词 m 的长度范围为 2-5 个元素的所有子集。 条件:元素的顺序应该保持不变。
输出:
{l, m}, {m,n},
{k, l, m}, {l, m, n}, {m, n, o},
{j, k, l, m}, {k, l, m, n}, {l, m, n, o}, {m, n, o, p}...等等开
我能够通过以下代码获得从输入单词开始的子集:
ArrayList<String> phrases = new ArrayList<>();
for (int j=1; j<=k-i; j++) {
String newSet = set[i] +" ";
for (int x=1; x<=j; x++) {
newSet=newSet+set[i+x]+" ";
}
phrases.add(newSet.trim());
}
return phrases;
}
【问题讨论】:
-
k und i 来自哪里?
-
for length = 2..5 { for position = max(0, 字母在序列中的位置 - (length -1) ... 字母在序列中的位置 { 附加长度长度的子序列从position 如果存在 } }
标签: java string algorithm loops for-loop