The answer can also be:
One question. James asks the host whether he knows the hostess or not. If he does, he is Dr.No. If he doesn't, she is.
Why do I think this is a valid answer?
The OP could either be a strictly mathematical puzzle, or a brainteaser with a somewhat more loose attitude towards conditions. To be of the first kind, it doesn't seem to be rigorous enough in all statements. In particular: Are all queried persons tell the truth? (Assume yes.). What does knowing somebody mean exactly?
for this reason I think the puzzle can be looked upon in a little more relaxed way, allowing 'common sense' assumptions to be made.
The following 'common sense' assumptions are needed:
- By knowing a person, one means that the name of the person is known to you.
- All people have been invited by the host or the hostess of the party.
- You invite people only if you know them. (I.e you know their name for the invitation.)
Under those assumptions:
Either host or hostess know all and are therefore Dr. No. (But either host or hostess do not know their counterpart!)
And the question then reveals:
If the host knows the hostess, she can't be Dr. No - therefore he is! Otherwise, she has to be Dr. Know.