forked from AdaGold/reverse-words
-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathreverse_words.rb
57 lines (52 loc) · 1.1 KB
/
reverse_words.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# A method to reverse each word in a sentence, in place.
# def string_reverse(my_string)
#
# if my_string == nil
# return nil
# elsif my_string.length == 1
# return my_string
# elsif
# my_string.length > 1
# temp = ""
# i = 0
# j = (my_string.length - 1)
# while i < j
# temp = my_string[i]
# my_string[i] = my_string[j]
# my_string[j] = temp
# i += 1
# j -= 1
# end
# return my_string
# end
# end
def reverse_words(my_words)
if my_words == nil || my_words.length == 0
return nil
else
start = 0
ender = 0
my_words.length.times do |i|
ender = i
if my_words[i] == " "
ender = i - 1
while start < ender
temp = my_words[ender]
my_words[ender] = my_words[start]
my_words[start] = temp
start += 1
ender -= 1
end
start = i + 1
end
end
while start < ender
temp = my_words[ender]
my_words[ender] = my_words[start]
my_words[start] = temp
start += 1
ender -= 1
end
end
return my_words
end