Если я правильно понял ваш вопрос, перестановка - это комбинация элементов, которые не повторяются. Поэтому, если 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
так что теперь все, что вам нужно проверить, это то, что если все целые числа второго массива присутствуют в первом массиве целых чисел, если да, то они являются перестановкой целых чисел первого массива или первого номера ,
Надеюсь, это поможет.
Как может быть число, являющееся перестановкой другого? Мы говорим о строке цифр в базе-10? Цифры 1-4-1 не совпадают с цифрой 141. – jalf
вы также можете думать об этом. –
Это по существу проверка анаграммы. – polygenelubricants