Statement I (TRUE): To recognize a substring of length $n$ (like "aba", where $n=3$ ), a minimal DFA generally requires $n+1$ states. For "$aba$", the states represent$: (1)$ Initial/nothing, $(2)$ '$a$' seen, $(3) $'$ab$' seen, and $(4)$ '$aba$' seen (final state).
Statement II (FALSE): While an NFA can be more space-efficient (fewer states) than a DFA, it is not "always" the case for every implementation. Furthermore, lexical analyzers in practice (like Flex) almost always convert the NFA to a DFA to ensure $O(1)$ time complexity per character, prioritizing speed over theoretical space savings.
Statement III (TRUE): The language $L=\left\{a^n b^n \mid n \geq 0\right\}$ is a Context-Free Language that is not regular. Since lexical analyzers are based on Finite Automata (which have no memory/count mechanism), they cannot recognize languages that require matching or counting, such as $a^n b^n$.