24 lines
448 B
Ruby
24 lines
448 B
Ruby
def reverse_sentence(str)
|
|
reverse_in_place(str, 0, str.length - 1)
|
|
|
|
word_beginning = 0
|
|
(0..str.length).each do |i|
|
|
if i == str.length || str[i] == ' '
|
|
reverse_in_place(str, word_beginning, i - 1)
|
|
word_beginning = i + 1
|
|
end
|
|
end
|
|
|
|
str
|
|
end
|
|
|
|
def reverse_in_place(str, start, len)
|
|
while start < len
|
|
str[start], str[len] = str[len], str[start]
|
|
start += 1
|
|
len -= 1
|
|
end
|
|
|
|
str
|
|
end
|