2. Determine whether a string has permutations which are palindromes.
If I understand this correctly, it's the sort of problem that's simple if you see the trick and hard if you don't. I'd expect many candidates to think that you actually want them to generate all the permutations and then get bogged down in recursion.
#1 is good, and #3 sounds interesting.