-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対応するがあります。pushshiftunshift

于 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 の標準的な出力方法 (inspect 以外) は、次のように各項目を別の行に出力することです。

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