0
サンプル入力数値であるように、文字列と整数を含む文字列「車トラック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(" ")
なぜC++タグ? – CyprUS
C++は最も効率的な言語なので、 :-)もっと興味深いのは、トラックが4と6の間にある理由です。 –
整数が単語に対してどのような位置にあるべきですか?すなわち、車の後で、トラックの前に4つの理由は何ですか? –