#
# alphabet
# E = ['a','b']
#
# states
# S = ['s0','s1']
#
# outputs
A = {'b':'yes','a':'no'}

#
# state transitions/outputs table
#
T = {
    ('s0','a'):('s0','a'),
    ('s0','b'):('s1','a'),
    ('s1','b'):('s1','a'),
    ('s1','a'):('s0','b')
}

if __name__ == '__main__':
    s = 's0' # init state
    words = ['ababba', 'baba', 'abba', 'baaa', 'babaab'] #input words

    for word in words:
        #
        # each word is tested via Mealy machine
        #
        for x in word:
            s,z = T[ (s,x) ]
            print '(%s:%s)' % (x,z)
        #
        # show result
        #
        print 'word: %3s = %s' % (word,A[z])
            