Skip to main content

Oh Happy Day!

 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

Popular posts from this blog

Certified CSS Surgeon

I've just been certified as a top notch CSS Surgeon 😹😹😹. Codepip has just officially launched and they're offering CSS Surgeon for free until the 1st of September. I've already finished Flexbox Froggy(Free) and Grid Garden(Also free). I really do enjoy the CSS games on this website. It has helped me better understand CSS. There is still so much to learn. I've been trying to create a simple language learning website and it has been a struggle. I'm using the most simple website layout and yet it's just kicking my butt(I'm looking at you Nav bar). I hope to add some Javascript to make it more interactive in the future. At one point I really wanted to throw in the towel because it felt like I would never get this. It's hard not to give up when there are so many hurdles to cross. Can I really be confident at coding after just a 6 month bootcamp?

Deviants in a normal world

It's definitely been a bit since I've seen this graphy. Anyone who has learnt about standard deviation knows this graph. Standard Deviation Standard deviation shows us how spread out all the values in a set are from the mean. The higher the standard deviation, the more spread out the values are over a wider range and the flatter this curve. In a normal distribution, most values are within 1 standard deviation from the mean(the green part of the graph). Apparently NumPy can calculate standard deviation too! import numpy numSet = [ *lots of numbers* ] numSetStdDev = numpy.std(numSet) Variance The variance also indicates how spread out the values in a set are. It measures the average degree to which each value differs from the mean. variance = standard deviation ^2 import numpy numSet = [ *lots of numbers * ] numSetVar = numpy.var(numSet) Source:  https://www.w3schools.com/python/python_ml_standard_deviation.asp

Portfolio on GitHub

As part of the bootcamp, I've been building a portfolio website based on a template provided by the school. Honestly, I hate the template. It is hideous. But I guess it's a great starting point for someone who is unsure about what to do. It was also an opportunity for me to practice publishing a website online. Unfortunately, I had to pay for a webhosting service. After submitting my third update to my portfolio website, one of the instructors suggested that I could use GitHub Pages instead. *mindblown* This is amaziiiiing. And it's so simple. When I finally get down to creating my own portfolio from scratch, I am definitely going to put it up on GitHub instead. Also, speaking of GitHub, I'm slowly understanding how GitHub functions. It is taking me awhile. Especially because I don't use many of the functions that are available. I look forward to learning more and becoming a GitHub extraordinaire :D JK