【发布时间】:2012-10-28 02:06:50
【问题描述】:
我正在使用 Ruby,需要以某种方式生成给定数字中数字的所有排列并将它们存储在一个数组中。所以例如我有号码n = 9431,我需要生成所有可能的方式,你可以订购这四个数字并将它们存储在一个数组中(原始可以在数组中)。
所以如果我输入 9431 我需要返回一个数组,例如:
[9413, 9431, 9143, 9134, 9314, 9341, 4913, 4931, 4193, 4139, 4319, 4391, 1493, 1439, 1943, 1934, 1394, 1349, 3419, 3491, 3149, 3194, 3914, 3941]
实际上使用字符串很好。
澄清:哦,输出必须是数组中的整数,而不是它们的单个数字。
【问题讨论】:
-
你为什么不想使用字符串?
-
你想在你的列表中重复吗?因此,如果您的号码是
2222,您的数组应该有一个元素还是 4 个元素!? -
@AmitKumarGupta,其实以前是不切实际的,我现在更新了我的函数,没问题。
-
@AmitKumarGupta,没有重复,所以你不能制作 4444,它必须使用所有数字,只需重新排序。看看 casper 的回答。
-
我的问题是,如果输入的数字已经有重复怎么办?尝试使用
4444而不是9431作为输入的 Casper 的答案。它能给你想要的答案吗?
标签: ruby permutation