Given an NFA, there exists a DFA that accepts the same language. This means that NFAs are not more powerful or expressive than DFAs. However, NFAs can be more elegant with far fewer states compared to a equivalent DFA (to accept the same language).
Let us start with an NFA M = (S,Σ,T,s,A). We can construct a equivalent DFA M′ = (S′,Σ,T′,s,A′) as specified in the pseudocode of listing 1.