Как бы вы сортировать список в Python и массив в Ruby, как:Как отсортировать массив числовых строк и строк слов
["car", "z", "9", "bus", "3"]
иметь этот массив в ответ:
["bus", "car", "3", "z", "9"]
Я я начал строить его в Ruby, потому что я знаю это лучше. Я попробовал .sort без параметров. Затем я начал писать сортировку вставки, надеясь, что перестрою ее в свой заказ и напишу этот метод.
def sort
@array.each do |value|
index = @array.index(value)
i = index - 1
while i >= 0
if value < @array[i]
@array[i + 1] = @array[i]
@array[i] = value
elsif (value =~ /\d/) == 0
# I wanted to do something here, whenever it stops at number to word comparison but didn't come up with anything workable
else
break
end
end
end
конец
Все, что я могу получить это [ "3", "9", "автобус", "автомобиль", "г"] Но это код вызов, который я должен заполнить и цель состоит в том, чтобы отсортировать массив строк в алфавитном и цифровом порядке, сохраняя индексы числовых строк, как в исходном массиве, просто помещая их в порядке возрастания. Я думал создать 2 хэша для чисел с и слова, имеющие свои ключи как индексы в исходном массиве, и отсортировать только значения, а затем ввести их в правильном порядке в новом массиве, но не смог написать код для него и все еще не уверен, что это будет лучшая идея.
Во-первых, выберите один язык. Во-вторых, объясните, почему вы думаете, что должен быть выход. В-третьих, покажите, что вы пробовали до сих пор, и опишите, что именно проблема с ним. – jonrsharpe
И, прежде всего, объясните, почему вы думаете, что '' 3 "' следует сортировать перед '" z "', но '' 9 "' приходит после. Я не вижу здесь никакой логической прогрессии. –
Извините за плохой старт, для меня было раннее утро. Просто отредактировал его. –