如果我从您的问题中正确理解,则排列是元素的组合,不会重复。因此,如果 123 是 312 的有效排列,那么
123,
213,
132,
321,
213,
等等。
因此,基于此假设,假设您有两个整数 123456789 和 129837456。(为简单起见,我还假设两个数字的长度相同)。如果您理解了这一点,那么您也许还可以检查不同的排列和组合。
为此,您需要做的就是从给定数字中获取单位的整数,例如:
Number 123456789 is
1 * 100000000 +
2 * 10000000 +
3 * 1000000 +
4 * 100000 +
5 * 10000 +
6 * 1000 +
7 * 100 +
8 * 10 +
9
或
1 * power(10, 8) +
2 * power(10, 7) +
3 * power(10, 6) +
4 * power(10, 5) +
5 * power(10, 4) +
6 * power(10, 3) +
7 * power(10, 2) +
8 * power(10, 1) +
9 * power(10, 0)
我已经从字面上给了你如何做到这一点的算法提示,所以这很容易做到。完成后,您将得到单独的整数(最好将这些值保存在数组中)
1, 2, 3, 4, 5, 6, 7, 8, 9
现在
对另一个给定的整数做同样的事情,这样你最终会得到另一个整数数组
1, 2, 9, 8, 3, 7, 4, 5, 6
所以现在你需要检查的是,如果第二个数组的所有整数都存在于第一个整数数组中,如果是,那么它们是第一个数组的整数或第一个数字的排列。
我希望这会有所帮助。