This interview question requires you to reverse a string using recursion. Make sure to think of the base case here.
Again, make sure you use recursion to accomplish this. Do not slice (e.g. string[::-1]) or use iteration, there must be a recursive call for the function.
def reverse(s):
if(len(s)<=1):
return s
else:
m = int(len(s)/2)
return reverse(s[m:]) + (reverse((s[:m])))
pass
reverse('hello world')
‘dlrow olleh’
Run the cell below to test your solution against the following cases:
string = 'hello' string = 'hello world' string = '123456789'
'''
RUN THIS CELL TO TEST YOUR FUNCTION AGAINST SOME TEST CASES
'''
from nose.tools import assert_equal
class TestReverse(object):
def test_rev(self,solution):
assert_equal(solution('hello'),'olleh')
assert_equal(solution('hello world'),'dlrow olleh')
assert_equal(solution('123456789'),'987654321')
print ('PASSED ALL TEST CASES!')
# Run Tests
test = TestReverse()
test.test_rev(reverse)
PASSED ALL TEST CASES!
Recommended: Introduction to Recursion
If you like my post please follow me to read my latest post on programming and technology.
A design pattern is a reusable solution to a commonly occurring problem in software design. They…
Factory Method is a creational design pattern that deals with the object creation. It separates…
You are given two singly linked lists that intersect at some node. Your task is…
A builder plans to construct N houses in a row, where each house can be…
Find the length of the longest absolute path to a file within the abstracted file…
You manage an e-commerce website and need to keep track of the last N order…