Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What are your favorite code problems to give while interviewing?
10 points by yankoff on June 12, 2015 | hide | past | favorite | 11 comments


This is a great topic.

I like to split my interview to the following steps:

- introduction, small talk about the company or the candidate - level 1 write a function that flips a bit that is represented as a single digit integer: (0 -> 1, 1 -> 0) flip two variables (int) without a third one: (a,b -> b,a)

- level 2 what is the runtime complexity of a nested loop (assuming n == m) lease write a function that returns the list of numbers (in a string representation) that are permutation of N digits, where digits are 0..9. (1 -> 0..9, 2 -> 00 01....98 99 etc.) please explain recursion

- level 3 99% of the candidates do not make it to here I guess I should just make them flip that binary tree over the phone. :)

This is basics I think, so most of the software engineers should be able to solve these, even with a little hint.

On the top of these artificial tasks I usually ask them what is the biggest system they contributed code to, what was the contribution. What tools are they using. What is the favorite language and why. How do you to performance profiling for your code. What was the last problem that you solved in production, what was the problem and what is the solution.

And few others.


How do you flip two variable without a third one ?


Another way is to just use subtraction:

  x = x + y
  y = x - y
  x = x - y
I originally learned about this while preparing for some interviews.

The funny thing, I find, is that in Python you can simply do this:

  x, y = 5, 10
  x, y = y, x
I was asked this question in an interview and I responded that you can do this. His response: "Python is weird."


search XOR (X=X XOR Y; Y=X XOR Y; X=X XOR Y)


Sorry for the terrible spelling, I was in a rush.


I like to give some broken code and ask them to fix it...or give a Class that's missing a function or two and ask them to fill in what seems to be missing.

I tend to like those types of problems more than the "blank page" kind...I've found it to be a closer approximation of the everyday tasks they'll be encountering on the job.


This is my favorite as well. Sure you'll be joining to write code from scratch, but day-to-day, you'll most likely be reviewing other people's code, hunting down bugs in other people's code, and so forth.

I'm a huge fan of "What can you fix or improve upon in this given code snippet?"


i guess if i say invert a binary tree i will be hunted down?:D


a good thing is that now probably everybody knows how to solve it ;)


The kind that they can solve at a computer with a real code editor.


I like to describe a problem that we are currently experiencing or one that we had in the past to see the troubleshooting logic in play. I love explaining something that is not quite optimal in production and see if this person could help.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: