From 4b72f1149dd765a0031fa1cd31297a5fb560307a Mon Sep 17 00:00:00 2001 From: Naheed Arang Date: Sat, 29 Sep 2018 14:55:14 -0700 Subject: [PATCH 1/2] tests pass --- lib/reverse_words.rb | 62 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/lib/reverse_words.rb b/lib/reverse_words.rb index cb3cc8a..990fb85 100644 --- a/lib/reverse_words.rb +++ b/lib/reverse_words.rb @@ -1,4 +1,64 @@ # A method to reverse each word in a sentence, in place. +require 'pry' def reverse_words(my_words) - raise NotImplementedError + i = 0 + j = 0 + + if my_words == nil || my_words.length == 1 || my_words.length == 0 + return + end + + loop do + # binding.pry + until my_words[i] != " " + i += 1 + end + j = i + until my_words[j + 1] == " " || j == (my_words.length - 1) + j += 1 + end + # binding.pry + string_reverse(my_words, i, j) + i = j + 2 + # binding.pry + break if i >= my_words.length - 1 + end + return end + + +def string_reverse(my_string, i, j) + if my_string == nil || i == j + return + end + temp = "" + temp2 = "" + while i < j do + temp = my_string[i] + temp2 = my_string[j] + my_string[j] = temp + my_string[i] = temp2 + i += 1 + j -= 1 + end + return +end + + +# i = 0 +# length = my_words.length +# while i < length # until end of input +# while my_words[i] == ' ' && i < length # accounting for preceeding spaces +# i += 1 +# end +# start_index = i # start of word identified +# +# while my_words[i] != ' ' && i < length # looking for end of word +# i += 1 +# end +# end_index = i - 1 # word ends before the white space or at length-1 +# +# partial_reverse(my_words, start_index, end_index) # reverse the word +# end +# return +# end From e22cf2142617ecefd0ca06c6d5667eb599df1ed5 Mon Sep 17 00:00:00 2001 From: Naheed Arang Date: Sat, 29 Sep 2018 14:57:38 -0700 Subject: [PATCH 2/2] cleanup --- lib/reverse_words.rb | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/lib/reverse_words.rb b/lib/reverse_words.rb index 990fb85..113b1f5 100644 --- a/lib/reverse_words.rb +++ b/lib/reverse_words.rb @@ -43,22 +43,3 @@ def string_reverse(my_string, i, j) end return end - - -# i = 0 -# length = my_words.length -# while i < length # until end of input -# while my_words[i] == ' ' && i < length # accounting for preceeding spaces -# i += 1 -# end -# start_index = i # start of word identified -# -# while my_words[i] != ' ' && i < length # looking for end of word -# i += 1 -# end -# end_index = i - 1 # word ends before the white space or at length-1 -# -# partial_reverse(my_words, start_index, end_index) # reverse the word -# end -# return -# end