#arrays #ruby #indexing #compare-and-swap
Вопрос:
У меня есть массивы строк и массивы целых чисел, которые представляют индексы строк и порядок их замены. Мне нужно поменять индекс X на следующий индекс и сделать то же самое со следующей парой чисел.
Я полагаю, что должен быть способ заменить индексы строки числами и соответствующим образом поменять позицию строки.
Например:
``` Array = ["A", "B", "C", "D", "E", "F"] SwapIndexes = [4, 2, 0, 3, 1, 5] `#=gt;can also be understood as [4lt;togt;2, 0lt;togt;3, 1lt;togt;5]` ```
Результат должен быть:
``` NewArray = ["D", "F", "E", "A", "C", "B"] `#=gt;Indexes have beem swaped according to each pair of numbers in SwapIndexes` ```
Ответ №1:
Ввод
Array = ["A", "B", "C", "D", "E", "F"] SwapIndexes = [4, 2, 0, 3, 1, 5]
Код
SwapIndexes.each_slice(2) do |first, second| Array[first], Array[second] = Array[second], Array[first] end p Array
Выход
["D", "F", "E", "A", "C", "B"]