2016-03-09 3 views
0

Как напечатать массив элементов в обратном порядке, а не только однозначное число, но и многозначные числа.Печать массива многозначных элементов в обратном порядке в рубине

[2, 5, 6 7] 

Он должен печатать элементы массива в обратном порядке, как 7 6 5 2 следуя пространство для каждого номера.

Я уже написал код для этого.

puts "Enter the array elements" 
    arr = gets.strip 
    arr = arr.split(' ').map(&:to_i) 
    x = arr.reverse_each {|f| } 
    z = x.join(" ") 
    print z.reverse 

Это круто с одной цифрой числа, как можно реверсировать многозначных чисел в массиве входных данных с помощью пользовательского ввода, как:

[45, 76, 87 ] # this should reverse the array as `87 76 45` 


[556, 674, 878 ] # this should reverse the array as `878 674 556` 
[8797, 7347, 9374 ] # this should reverse the array as `9374 7374 8797` 
+0

Что такое 'n'? Он никогда не используется в приведенном выше коде. – Stefan

+0

'n' используется только для того, чтобы знать много элементов, содержащих массив. Однако в приведенном выше коде я не использовал 'n'. Может быть, я должен удалить этот код.! – Packer

+0

У меня нет времени, чтобы опубликовать ответ, но вот подсказка: у двух основных классов Ruby есть метод «reverse», 'Array' и' String'. Вы используете последний. – Stefan

ответ

5

Если вы хотите остроты:

gets.strip.split(' ').reverse.join(' ') 

Это будет принимать входные 1 2 3 45 678 9 и преобразовывает его "9 678 45 3 2 1"

+0

#Optmized код. Это работало как шарм! Спасибо. – Packer

+0

не должно быть '9 876 54 3 2 1'? вместо вашего размещенного вывода '9 678 45 3 2 1' – Packer

+0

№. Это будет' 9 876 54 3 2 1', если вы отменили строку. В моем решении на выходе 'split' вызывается' reverse', который является массивом. Это отменяет порядок элементов в массиве, но не содержание самих элементов. –

4

Входной сигнал: [8797, 7347, 9374 ]

Выход: "9374 7374 8797"

arr = gets.chomp 
arr = arr.split(' ').map(&:to_i) 
x = arr.reverse.join(' ') 
print x 

Использование reverse и join, и он должен вернуть тип String, который присоединил ваш реверсивный массив.

+0

В следующий раз используйте «edit», чтобы изменить/обновить/исправить уже опубликованный ответ, а не просто удалить старый и опубликовать новую версию в качестве отдельного ответа. Кроме того, была полезной ссылка на ['Array # reverse'] (http://ruby-doc.org/core-2.2.0/Array.html#method-i-reverse). – mudasobwa

+0

@mudasobwa Извините, что обязательно это сделает в следующий раз –

+0

@philip yoo, Perfect solution. Спасибо. – Packer

Смежные вопросы