I've been doing interviews in Java for whatever reason, but since I'm focusing on Python for data, I might as well be doing my code puzzles in Python.
While practicing, I prefer having working solutions available. That's what I did a few days ago with OCaml here: ocaml.org/learn/tutorials/99problems.html. Having the solutions makes it easier to give up, but it's better to give up and see a solution than to just skip to the next problem.
Also nice is that the OCaml problems come with test cases. OCaml and Python both have an assert method to make testing your code super clean and easy.
Tonight I redid three questions from my Facebook interviews. Sorry, not sharing those.