Тот же результат, что и ожидалось, но с другим форматом на сайте hackerrank с использованием Octave - PullRequest
1 голос
/ 17 апреля 2020

Я отправляю эту проблему с хакерской практикой .

Вот мой код:

n = scanf('%d',1);
a = scanf('%d',[1,n]);
pivot = a(1);
equal = pivot; left = []; right = []; b = [];
for i = 1:length(a)-1
    if a(i+1)<equal
        left = [left,a(i+1)];
    elseif a(i+1)>equal
        right = [right,a(i+1)];
    end;
end;
b = [left,equal,right];
disp(b);

, но он все равно говорит, что мой ответ неверен:

Your Output (stdout)
   3   2   4   5   7 

Expected Output
3 2 4 5 7 

Обратите внимание на разницу между числами.

Как получить ожидаемый результат?

1 Ответ

0 голосов
/ 19 апреля 2020

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

В Octave используйте fprintf для управления форматированием ввода:

fprintf('%f ', b)

сделает это, но в конце также напишите пробел. Может быть, это нормально, попробуйте. Если это не так, вам нужно вывести последний отдельно:

fprintf('%f ', b(1:end-1))
fprintf('%f', b(end)) % last number without a space at the end
...