From aab94e3a55874325cc211f882525b8ac12479abe Mon Sep 17 00:00:00 2001 From: Emily Vomacka Date: Tue, 17 Sep 2019 12:14:36 -0700 Subject: [PATCH 1/2] both methods pass all tests --- lib/practice_exercises.rb | 48 ++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/lib/practice_exercises.rb b/lib/practice_exercises.rb index 291e4e6..595d2d2 100644 --- a/lib/practice_exercises.rb +++ b/lib/practice_exercises.rb @@ -1,13 +1,45 @@ -# Time Complexity: ? -# Space Complexity: ? +# Time Complexity: O(n^2) +# Space Complexity: O(1) def remove_duplicates(list) - raise NotImplementedError, "Not implemented yet" + length = list.length + if length == 0 + return [] + end + length.times do |k| + if k > 0 && list[k] == list[k-1] + i = k + until i > length || list[i-1] == nil do + list[i - 1] = list[i] + i += 1 + end + end + k += 1 + end + return list end -# Time Complexity: ? -# Space Complexity: ? +# Time Complexity: O(n), where n is total length of all strings combined +# Space Complexity: O(1) def longest_prefix(strings) - raise NotImplementedError, "Not implemented yet" -end - + strings.each do |string| + if string.length == 0 + return "" + end + end + prefix = strings[0] + (1...strings.length).each do |n| + (0...prefix.length).each do |i| + if strings[n][i] != prefix[i] + if i == 0 + prefix = "" + break + else + prefix = prefix[0...i] + break + end + end + end + end + return prefix +end \ No newline at end of file From 1be659dd07b27ffdab10d2334c9b49f77e72fea7 Mon Sep 17 00:00:00 2001 From: Emily Vomacka Date: Tue, 17 Sep 2019 12:18:45 -0700 Subject: [PATCH 2/2] clean up --- lib/practice_exercises.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/practice_exercises.rb b/lib/practice_exercises.rb index 595d2d2..d8b048c 100644 --- a/lib/practice_exercises.rb +++ b/lib/practice_exercises.rb @@ -6,8 +6,8 @@ def remove_duplicates(list) if length == 0 return [] end - length.times do |k| - if k > 0 && list[k] == list[k-1] + (1...length).each do |k| + if list[k] == list[k-1] i = k until i > length || list[i-1] == nil do list[i - 1] = list[i]