Conversation
CheezItMan
left a comment
There was a problem hiding this comment.
Overall nice work, you hit the learning goals here. Well done. Check my comments below especially with regard to time/space complexity. Let me know if you have questions.
| # Space complexity: ? | ||
| # Time complexity: 0(n) | ||
| # Space complexity: 0(n) | ||
| def factorial(n) |
| raise NotImplementedError, "Method not implemented" | ||
|
|
||
| return s if s.length < 2 | ||
| return reverse(s[1..-1]) + s[0] |
There was a problem hiding this comment.
s[1..-1] creates a new array and copies all the individual elements over and so is O(n) by itself.
| # Space complexity: ? | ||
| # Time complexity: 0(n) | ||
| # Space complexity: 0(n) | ||
| def reverse(s) |
There was a problem hiding this comment.
👍
This works, but because you create a new array with each recursive call this is O(n2) for both time/space complexity.
|
|
||
| # Time complexity: ? | ||
| # Space complexity: ? | ||
| def reverse_inplace(s) |
There was a problem hiding this comment.
- This is not done in place
- It's calling the method above.
| # Time complexity: ? | ||
| # Space complexity: ? |
|
|
||
| # Time complexity: ? | ||
| # Space complexity: ? | ||
| def search(array, value) |
There was a problem hiding this comment.
👍 This works, but you have similar time/space issues with the above methods.
| def is_palindrome_helper(s, index) | ||
| return true if s.empty? || s.length ==1 | ||
| return false if s[0] != s[s.length - index] | ||
| is_palindrome_helper(s[1..s.length - index - 1], 1) |
There was a problem hiding this comment.
You're both slicing the array and using index as 1, I'm not sure why index is needed as a param at all.
|
|
||
| # Time complexity: ? | ||
| # Space complexity: ? | ||
| def is_palindrome(s) |
There was a problem hiding this comment.
👍 This works, but you have similar time/space issues with the above methods.
| if n % 10 == m % 10 | ||
| count += 1 | ||
| end | ||
| if (n / 10 == 0 || m / 10 == 0) |
|
|
||
| # Time complexity: ? | ||
| # Space complexity: ? | ||
| def digit_match(n, m) |
No description provided.