I wrote my first recursive function today! I've read about recursion and wanted to attempt it for the longest time. I kept letting fear get in the way. Working on problems with my team has definitely helped me learn more, faster. It has also helped with my confidence.
I finally attempted a simple problem using recursion on LeetCode. I was meant to reverse a string.
First, I had to figure out how a recursive function worked exactly. When a function calls itself, it stops the execution of the rest of the code in the function until it reaches the "end" of the chain of function calls. The base case is what determines when the recursive function stops. Without a base case, it would keep calling itself forever like images reflecting off parallel mirrors facing each other. In my function, the base case is when the end of the list is reached, index >= len(s).
Once the base case is reached, it returns to the previous recursive function call on line 5 and line 6-12 are executed. When those lines of code are fully executed, it returns to the recursive function call before that, until all the function calls have been fully executed.
I used a 2 pointer technique to swap the values at the first and last indices, working my way to the center of the list. I swapped the values in the list as the pointers moved inward.
In lines 6-7, I had to ensure that the values would not keep getting swapped as the pointers moved past the mid point. I did so by just returning to the previous function call without making any changes to the list.
And tadaa! The string was successfully reversed!
Comments
Post a Comment