【发布时间】:2015-07-03 20:11:44
【问题描述】:
我在实现算法以在给定字符串中查找字谜时遇到问题。下面的方法不会返回正确的输出。例如,给定单词“abc”,它返回 [abc, bc, c, bc, bc, c]。当它真的应该只是 [abc, bac, bca, acb, cab, acb]
private List<String> anagramizeRecursive(String word) {
if(word.length() == 0) {
return null;
}
else {
for(int i = 0; i < word.length()-1; i++) {
unfiltered.add(word.substring(i));
anagramizeRecursive(word.substring(i+1));
unfiltered.add(word.substring(i+1));
}
}
return unfiltered;
}
【问题讨论】:
-
unfiltered列表在哪里被实例化? -
你的预期输出是什么?
-
@JorgeCampos 它是一个类变量它是一个字符串数组列表
-
@Masud 它缺少前面带有 a 的字谜,我假设因为 bc 和 c 重复
-
您确定要查找字谜吗?如果是这样,您可能需要在递归帧中传递一些列表。
标签: java list recursion arraylist