Sure, the above sentences all mean the same thing, but they are awkwardly worded. The standard American way of saying it would be "I do not (or don't) have a cat." Other wordings might appear in a poem or proverb. DuoLingo is a computer program. It (and its programmers) cannot possibly predict all possible ways of saying the same thing -- they'll choose the most common or obvious, and add optional wordings as required.
Course they bloody can. It isn't difficult. They already do, mostly. And, we are not doing american english, except in that a question, rather than an answer, must use one formulation. I haven't a cat = I have not a cat = I don't have a cat = I do not have a cat = I have no cat
"I have no cat" is an awkward statement on its own because the stress is on "no" as opposed to "do not have." Though, it can be a response in a conversation where that stress is appropriate. For example:
"I have a mouse problem."
"Doesn't your cat eat them?"
"I have no cat."
"There has been a complaint about cats coming from your apartment."
"I have no cat!"
In those case, either sentence can be used, the choice depending on the chosen stress .
Your first sentence: "Do not have a cat" is not only grammatically wrong in English, but could be understood in several different ways:
• I do not have a cat
• You (singular) do not have a cat
• We do not have a cat
• You (plural) do not have a cat
• They do not have a cat
You cannot just give a literal translation.
It has to both mean the same thing, and be grammatically correct in the language you translate to.
Schöner avatar und nutzername.