サンプル入力: 「車 トラック 8 4 バス 6 1」
サンプル出力: 「バス 1 4 トラック 6 8」
文字列の n 番目の要素が整数の場合は整数のままである必要があり、単語の場合は単語のままである必要があります
これを行うためのよりエレガントで効率的な方法はありますか? 以下は私のルビーコードです。より効率的なコードを探しています(ルビーである必要はありません)。
puts "Enter Input:"
inp = gets
inp_ary=inp.split(" ")
a=inp_ary.group_by{|i| i=~ /\d/}
sort_words = a[nil].sort
sort_integer = a[0].sort
index_words=[]
index_integer=[]
inp_ary.each_with_index do |e,i|
if e =~ /\d/
index_integer << i
else
index_words << i
end
end
final = []
sorted = sort_words + sort_integer
index_integer.each_with_index do |e,i|
final[e] = sort_integer[i]
end
index_words.each_with_index do |e,i|
final[e] = sort_words[i]
end
puts "Sorted Output: "
puts final.join(" ")