**Answer:**

Check following NFA. I've done subset construction too. $8$ States are needed even after minimization..

Every state containing D is final state.

**NFA**:

**NFA to DFA**

$$\begin{array}{|l|l|l|}\hline \text{} & \text{0} & \text{1} \\\hline \text{A} & \text{A} & \text{AB} \\ \text{AB} & \text{AC} & \text{ABC} \\ \text{AC} & \text{AD} & \text{ABD}\\ \textbf{AD} & \text{A} & \text{AB} \\ \text{ABC} & \text{ACD} & \text{ABCD} \\ \textbf{ABD} & \text{AC} & \text{ABC} \\ \textbf{ACD} & \text{AD} & \text{ABD}\\ \textbf{ABCD} & \text{ACD} & \text{ABCD} \\\hline \end{array}$$

The third symbol from the right is a '$1$'. So, we can also consider Myhill-Nerode theorem here. Intuitively we need to remember the last $3$ bits of the string each of which forms a different equivalence class as per Myhill-Nerode theorem as shown by the following table. Here, for any set of strings (in a row), we distinguish only the rows above it - as the relation is symmetric. Further strings in the language and not in the language are distinguished separately as $\epsilon$ distinguishes them.

$$\begin{array}{|l|c|l|l|}\hline \text{} & \textbf{Last}\ \textbf{3}\ & \textbf{Distinguishing string} & \textbf{In L?}\\

&\textbf{bits}\\

\hline 1 & 000 & \text{} & \text{N} \\ \hline

2 & 001 & \text{$“00$" distinguishes from strings in $1$.} & \text{N} \\\hline

3 & 010 & \text{“$0$" distinguishes from strings in $1$ and $2$.} & \text{N} \\

&& \text{“$00$" distinguishes from strings in $4$.}\\\hline

4 & 011 & \text{“$0$" distinguishes from strings in $1$ and $2$.}& \text{N} \\

&&\text{“$00$" distinguishes from strings in $3$.}\\\hline

5 & 100 & \text{} & \text{Y} \\\hline

6 & 101 & \text{“$00$" distinguishes from strings in $5$.} & \text{Y} \\\hline

7 & 110 & \text{“$0$" distinguishes from strings in $5$.} & \text{Y}\\

&&\text{“$00$" distinguishes from strings in $6$.}\\\hline

8 & 111 & \text{“$00$" distinguishes from strings in $5$ and $7$.} & \text{Y}\\

&&\text{“$0$" distinguishes from strings in $6$.}\\\hline \end{array}$$