I am always looking to learn something. Sometimes it is re-working problems like I am a complete beginner. Almost like starting over. I have read that called "beginners mind" in some literature.
So today I looked at unopened emails and I had one from Passion of Programming. It was a programming problem of reversing an array.
So I started a Python repl and started figuring out how to reverse an array.
def r(a,start,end): print(a,start,end) def swapit(pos1,pos2): tmp = a[pos1] a[pos1] = a[pos2] a[pos2] = tmp for i in range(int(len(a)/2)): swapit(start+i,end-i) print(a,start,end) return a
I wrote a few test cases and it looked correct.
Is it the best way to do it? Probably not but it is what I came up with fairly quickly and it passed my tests.
One thing that I like about Python is being able to define a function exactly where you need it. The
only works in the function r. Another way to say that is that swapit is scoped to only run in the function r.
One other thing I noticed is that it skips the middle element if you have an array that has an odd length.
So there you are. Now the next time I am asked an array for a job interview. BOOM!