It sort of depends on the candidate. For a new grad, I'd be asking interview questions that are a little more textbook. Write something to traverse a tree, sorting, etc, i.e. theoretical stuff.<p>For someone with experience, the expectation is less about data structures, and more about architecture and practical problems we'd have to solve day-to-day. Of course there was a coding question, but it weighed a little less.<p>This was the standard process at a medium-sized company in SF, and I thought the process was far from perfect. I'm sure the sentiment is shared by many, but focusing on one's ability to write an algorithm within 45 mins did not necessarily mean they'd be a great developer to work with.<p>But I digress. To answer your question, we used coderpad for phone screen coding interviews.
I think that the best way is to directly ask the person which algorithms/data structures they know or have used.<p>Since this field of knowledge is a huge collection of know-hows, there is no way to measure knowledge level with high accuracy by random sampling.