Some string will come followed by one 'c', followed by reverse of the string before 'c'.
So we get to know that 'c' will work as an alarm to starting poping STACK.
So we will pop every 'a' with 'a' and every 'b' with 'b'.
For every two a's and b's push them into STACK
When 'c' comes do nothing.
Starting poping STACK: 'a' for 'a' and 'b' for 'b'.
We have designed the PDA for the problem:
STACK Transiton Function
δ(q0, a, Z) = (q0, aZ) δ(q0, a, a) = (q0, aa) δ(q0, b, Z) = (q0, bZ) δ(q0, b, b) = (q0, bb) δ(q0, a, b) = (q0, ab) δ(q0, b, a) = (q0, ba) // this is decision step δ(q0, c, a) = (q1, a) δ(q0, c, b) = (q1, b) δ(q1, b, b) = (q1, ε) δ(q1, a, a) = (q1, ε) δ(q1, ε, Z) = (qf, Z)
Note: qf is Final State
Explanation
Lets see, how this DPDA is working:We will take one input string: "abbcbba"