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辆车之后但卡车之前? –