Solution (source code)

= Solution

For a set $S\subseteq Q_E$, let $E(S)$ be its <epsilon closure>, and put
$$
\delta_E(S,a)=\bigcup_{q\in S}\delta_E(q,a).
$$
The <subset construction with epsilon transitions> gives the <deterministic finite automaton>
$$
Q_D=\mathcal P(Q_E),
\qquad q_D=E(\{q_0\}),
$$
$$
\boxed{\delta_D(S,a)=E\bigl(\delta_E(S,a)\bigr),
\qquad
F_D=\{S\subseteq Q_E:S\cap F_E\ne\varnothing\}.}
$$
Unreachable subsets may be deleted from $Q_D$ without changing the recognized language.