Обратная перестановка неправильное решение на кодовый сигнал? - PullRequest
2 голосов
/ 26 апреля 2020

В настоящее время я выполняю вызов inversePermutation для сигнального кода. Вот краткое резюме задачи:

Учитывая перестановку, произведем ее обратную перестановку.

Пример

Для перестановки = [1, 3, 4, 2], вывод должен быть inversePermutation (перестановка) = [1, 4, 2, 3].

В решениях, предоставленных другими пользователями, я вижу это:

return numpy.argsort(*eval(dir()[0])) + 1

Но я не думаю, что это правильно, потому что даже если код прошел следующий тест: input [1, 3, 4, 2] ожидаемый вывод: [1, 4, 2, 3] input [1, 2, 3] ожидаемый вывод: [1, 2, 3], которые являются единственным тестом, подтвержденным кодовым сигналом для прохождения испытания, когда я пробую этот код со следующим массивом: [3, 0, 2, 7] я получаю это: [2, 3, 1, 4]. Что совершенно неправильно в соответствии с описанием задачи. Вместо этого я ожидал такого вывода: [3, 2, 7, 0].

Так как я могу это сделать, и этот код неправильный или что-то в этом роде?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

когда я пытаюсь этот код со следующим массивом: [3, 0, 2, 7] я получаю это: [2, 3, 1, 4]. Что совершенно неправильно в соответствии с описанием задачи. Вместо этого я ожидал этого вывода: [3, 2, 7, 0].

Если вы передадите массив с 4 значениями, обратная перестановка не может иметь значений, превышающих 4, потому что это индексы, где чтобы получить элементы для восстановления первоначального порядка, а не элементы.

Так что, если вы берете [3, 0, 2, 7], правильный ответ будет [2, 3, 1, 4], потому что это означает, что вы берете второй элемент (0), затем третий (2), затем сначала (3) и, наконец, далее (7), чтобы сделать [0, 2, 3, 7].

1 голос
/ 26 апреля 2020

Из онлайн-определения: «Обратная перестановка - это перестановка, которую вы получите, вставив позицию элемента в позицию, указанную значением элемента в массиве»

У меня такое чувство, что ожидаемый ввод является последовательностью из n чисел с n в диапазоне (1, n).

В вашем примере вы включаете 0 и числа, превышающие list.len ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...