1) Design DFAs that accept the following languages and draw their transition diagrams:
(i) {w  {a, b}* : every a in w is immediately preceded and followed by b}
(ii) {w  {0, 1}* : w has 001 as a substring}
(iii) {w ∈ {a, b}* : w does not end in ab}.
(iv) { w ∈ {0,1}* : w starts and ends with a substring ab}.