-3

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

这是我的尝试:

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

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

4

5 回答 5

3

怎么样:

"The quick fox ".split.reverse.join(" ")
于 2012-12-08T19:51:08.073 回答
1

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

sentence =  "The quick fox "
stack = sentence.split
until stack.empty?
  print stack.pop
  print ' ' unless stack.empty?
end
# => fox quick the
于 2012-12-08T19:41:02.633 回答
0
s = "The quick fox "
stack = s.split
until stack.empty? do stack.shift end

shift, 而不是pop你要找的。

附加智慧:就像pop有一个对应的pushshift有一个对应的unshift

于 2012-12-08T19:48:50.940 回答
0
stack = "The quick fox ".split
stack.size.times{ puts stack.pop }

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

于 2012-12-08T20:36:37.687 回答
0
print *"The quick fox ".strip.split.reverse.map{|w| " #{w}"}

但是您对堆栈和打印它们的要求是相互矛盾的。当你有一个列表时,Ruby 的标准输出方式(除了检查)是在不同的行上输出每个项目,如下所示:

puts "The quick fox ".strip.split.reverse
于 2012-12-08T20:40:18.603 回答