diff --git a/part-1.py b/part-1.py index b7dd7b6..b8991a7 100644 --- a/part-1.py +++ b/part-1.py @@ -4,17 +4,36 @@ # the appropriate comment. # factorial - +def factorial(n): + if n < 0: + raise ValueError + elif n == 0: + return 1 + + return n * factorial(n-1) # reverse - +def reverse(text): + if len(text) <= 1: + return text + + return reverse(text[1:]) + text[0] # bunny - +def bunny(count): + if count == 0: + return 0 + return bunny(count-1) + 2 # is_nested_parens - +def is_nested_parens(parens): + if len(parens) == 0: + return True + elif len(parens) % 2 != 0 or parens[0] != '(' or parens[-1] != ')': + return False + + return is_nested_parens(parens[1:-1]) \ No newline at end of file diff --git a/part-2.py b/part-2.py index b3b77fc..31a9fcc 100644 --- a/part-2.py +++ b/part-2.py @@ -4,13 +4,40 @@ # the appropriate comment. # search - +def search(array, query): + if not array: + return False + + if array[0] == query: + return True + return search(array[1:],query) # is_palindrome - +def is_palindrome(text): + if len(text) <= 0: + return True + if text[0] != text[-1]: + return False + return is_palindrome(text[1:-1]) # digit_match - +def digit_match(num1, num2): + + if num1 == 0 or num2 == 0: + if num1 == 0 and num2 == 0: + return 1 + else: + return 0 + + if num1 % 10 == num2 % 10: + match = 1 + else: + match = 0 + + if num1 // 10 == 0 and num2 //10 == 0: + return match + else: + return match + digit_match(num1 // 10, num2 //10)