如何在不使用Java中的数组和子字符串的情况下编写递归排列函数

时间:2016-10-06 18:04:37

标签: java recursion

我的老师和我正在讨论是否可以在不使用Java中的子串和/或数组的情况下编写递归排列函数。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

答案是肯定的,这可以做到。我假设"没有使用子串和/或数组"指传递给递归的信息。你拥有来为要置换的元素提供某种容器。

在这种情况下,可以通过使用数字编码元素的索引作为数字参数的数字来拉动一些可怕的技巧来完成。例如,如果有3个元素,并且我在最左边的数字中使用1作为标记值(因此有时你可以将0作为前导索引),1表示我没有开始,10表示第一个元素已选择,102表示第一个和第三个,1021表示我已准备好打印排列,因为我现在有一个4位数参数,并且集合中有3个元素。然后,我可以使用% 10/ 10算法来解析要打印的元素,以便将它们删除。

我是用Ruby而不是Java实现的,而且我不会分享实际的代码,因为它太可怕了。但是,它只递归地使用元素的输入数组和作为参数的整数,没有部分解决方案子串或数组。