文をスペースで分割し、それを任意の配列に格納してから、スタック (後方) として出力しようとしています。
これは私の試みです:
sentence = "The quick fox "
stack = sentence.split
print stack.pop until stack.empty? # => fox quick The
これは私には少し奇妙に見えます。より良い解決策をお勧めできるかどうかわかりません。ありがとう。
どうですか:
"The quick fox ".split.reverse.join(" ")
各単語の後にスペースを追加するには:
sentence = "The quick fox "
stack = sentence.split
until stack.empty?
print stack.pop
print ' ' unless stack.empty?
end
# => fox quick the
s = "The quick fox "
stack = s.split
until stack.empty? do stack.shift end
shift
、代わりにpop
あなたが探しているものです。
追加の知恵: 対応する があるように、pop
対応するがあります。push
shift
unshift
stack = "The quick fox ".split
stack.size.times{ puts stack.pop }
しかし、私はOPのpop until empty?
構文を好みます
print *"The quick fox ".strip.split.reverse.map{|w| " #{w}"}
しかし、スタックを持ち、それらをスペースで区切って印刷するという要件は矛盾しています。リストがある場合、Ruby の標準的な出力方法 (inspect 以外) は、次のように各項目を別の行に出力することです。
puts "The quick fox ".strip.split.reverse