我试图按空格分割句子,将其存储到任何数组中,然后将其作为堆栈(向后)打印。
这是我的尝试:
sentence = "The quick fox "
stack = sentence.split
print stack.pop until stack.empty? # => fox quick The
这对我来说有点奇怪,我不确定你们是否可以向我推荐一个更好的解决方案?感谢。
答案 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
正是您要找的。 p>
其他智慧:就像pop
有相应的push
,shift
有相应的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