将数组打印为堆栈

时间:2012-12-08 19:36:23

标签: ruby arrays stack

我试图按空格分割句子,将其存储到任何数组中,然后将其作为堆栈(向后)打印。

这是我的尝试:

sentence =  "The quick fox "    
stack = sentence.split
print stack.pop until stack.empty? # => fox quick The

这对我来说有点奇怪,我不确定你们是否可以向我推荐一个更好的解决方案?感谢。

5 个答案:

答案 0 :(得分:3)

怎么样:

"The quick fox ".split.reverse.join(" ")

答案 1 :(得分:1)

在每个单词后面添加一个空格:

sentence =  "The quick fox "
stack = sentence.split
until stack.empty?
  print stack.pop
  print ' ' unless stack.empty?
end
# => fox quick the

答案 2 :(得分:0)

s = "The quick fox "
stack = s.split
until stack.empty? do stack.shift end

shift,而不是pop正是您要找的。

其他智慧:就像pop有相应的pushshift有相应的unshift

答案 3 :(得分:0)

stack = "The quick fox ".split
stack.size.times{ puts stack.pop }

但我更喜欢OP的pop until empty?语法

答案 4 :(得分:0)

print *"The quick fox ".strip.split.reverse.map{|w| " #{w}"}

但是你需要堆叠并用空格分隔它们是矛盾的。当你有一个列表时,Ruby的标准输出方式(旁边检查)是输出不同行上的每个项目,如下所示:

puts "The quick fox ".strip.split.reverse
相关问题