Conversation
CheezItMan
left a comment
There was a problem hiding this comment.
This is good progress, you have some well done methods here, you should be proud. Take a look at my notes and let me know if you have questions.
| # Space complexity: ? | ||
| # Time complexity: O(n) | ||
| # Space complexity: O(n) | ||
| def factorial(n) |
| if rev.length == string.length | ||
| return rev | ||
| end | ||
| rev = string[first] + rev |
There was a problem hiding this comment.
String concatenation creates a new array and copies all the individual elements over and so is O(n) by itself.
| # Time complexity: O(n) | ||
| # Space complexity: O(1) | ||
|
|
||
| def reverse(string, rev = "", first = 0) |
There was a problem hiding this comment.
👍 Nice work, however because you are creating new arrays with each iteration you have time/space complexity of O(n2)
| # Space complexity: O(1) | ||
|
|
||
| #All the variables that you have to change would go in the parameters. | ||
| def reverse_inplace(s, first = 0, last = s.length - 1) |
There was a problem hiding this comment.
👍 However your space complexity is O(n) because of the call stack.
| def bunny(n) | ||
| raise NotImplementedError, "Method not implemented" | ||
| return ears = (n + n) | ||
| bunny(n) |
There was a problem hiding this comment.
Just for readability
| bunny(n) | |
| return ears + bunny(n) |
| #I want to add n to itself,but I don't now what my base case would be | ||
| def bunny(n) | ||
| raise NotImplementedError, "Method not implemented" | ||
| return ears = (n + n) |
There was a problem hiding this comment.
| return ears = (n + n) | |
| ears = 2 |
| raise NotImplementedError, "Method not implemented" | ||
| # Time complexity: O(n) | ||
| # Space complexity: O(n) | ||
| def nested(s, first = 0, last = s.length - 1) |
|
|
||
| # Time complexity: ? | ||
| # Space complexity: ? | ||
| def search(array, value) |
| raise NotImplementedError, "Method not implemented" | ||
| # Time complexity: O(n) | ||
| # Space complexity: O(n) | ||
| def is_palindrome(string, length = 0, letter = 0, hash = {}, results = []) |
There was a problem hiding this comment.
I think you made this a little more complicated than you needed to here.
def is_palindrome(string, first = 0, last = string.length -1)
return true if first > last
return false if string[first] != string[last]
return is_palindrome(string, first + 1, last -1)
end
No description provided.