Re:Ask HN: Why is it that so many people fail fizzbuzz?
by yen223 on Wednesday November 21, 2012 @09:22PM
(#4817255)
That is actually a rather clever solution. I guess you could do the same in Python, using itertools.
That said, I guess I should rephrase my question: Is there a simple programming test that can help weed out fakers quickly, which does not involve mathematics? Sort of like "Deploy a simple CRUD app in 15 mins" or something?
This is to address the parent's concern that a lot of web apps out there don't actually require much mathematics.
Re:Ask HN: Why is it that so many people fail fizzbuzz?
by freework on Wednesday November 21, 2012 @10:30PM
(#4817401)
I did a coding interview problem once where the company gave me an API endpoint that spat out JSON representing products, and told me to build a page that displays those objects onto a page with infinite scroll. As you scrolled down to the bottom of the page it would load more products.
Re:Ask HN: Why is it that so many people fail fizzbuzz?
by a_bonobo on Wednesday November 21, 2012 @11:27PM
(#4817494)
For completion's sake, yes you can do that in Python, it's just slightly uglier (as far as I know) using
''.join(filter(None, [a, b]))
and
itertools.cycle([None, None, 'Fizz'])
itertools.cycle([None, None, None, None, 'Buzz'])
And because I had to fiddle around manually to understand it (not good at Ruby's inbuilt methods) here's how it works: It generates two long arrays, one containing "Fizz" every third element, and one containing "Buzz" every five elements, the rest is filled up with nils.
Then it iterates over 1 to 100 and zips the two arrays at that position together - if the "zipped together" sum of both arrays is nil, that number is printed, else the concatenated string of both arrays at that position is printed (example: "Fizz" + nil = "Fizz"). Neat!
Edit: I also found a great one using flip-flops: https://gist.github.com/3230984