Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def q0(symbol):
- if symbol == '0':
- return '0', 1, 'q0'
- if symbol == '1':
- return '1', 1, 'q0'
- if symbol == '2':
- return '2', 1, 'q0'
- if symbol == '+':
- return '+', 1, 'q1'
- if symbol == '-':
- return '-', 1, 'q2'
- if symbol == ' ':
- return ' ', 1, 'q0'
- def q1(symbol):
- if symbol == '0':
- return '0', 0, 'qn'
- if symbol == '1':
- return '1', -1, 'q3'
- if symbol == '2':
- return '2', -1, 'q4'
- def q2(symbol):
- if symbol == '0':
- return '0', 0, 'qn'
- if symbol == '1':
- return '1', -1, 'q5'
- if symbol == '2':
- return '2', -1, 'q6'
- def q3(symbol):
- if symbol == ' ':
- return '1', 0, 'qn'
- if symbol == '0':
- return '1', 0, 'qn'
- if symbol == '1':
- return '2', 0, 'qn'
- if symbol == '2':
- return '0', -1, 'q3'
- if symbol == '+':
- return '+', -1, 'q3'
- def q4(symbol):
- if symbol == '0':
- return '2', 0, 'qn'
- if symbol == '1':
- return '0', -1, 'q3'
- if symbol == '2':
- return '1', -1, 'q3'
- if symbol == '+':
- return '+', -1, 'q4'
- def q5(symbol):
- if symbol == '0':
- return '2', -1, 'q5'
- if symbol == '1':
- return '0', 0, 'q7'
- if symbol == '2':
- return '1', 0, 'qn'
- if symbol == '-':
- return '-', -1, 'q5'
- def q6(symbol):
- if symbol == '0':
- return '1', -1, 'q5'
- if symbol == '1':
- return '2', -1, 'q5'
- if symbol == '2':
- return '0', 0, 'qn'
- if symbol == '-':
- return '-', -1, 'q6'
- def q7(symbol):
- if symbol == '0':
- return '0', -1, 'q7'
- if symbol == '1':
- return '1', -1, 'q7'
- if symbol == '2':
- return '2', -1, 'q7'
- if symbol == ' ':
- return ' ', 1, 'q8'
- def q8(symbol):
- if symbol == '0':
- return ' ', 1, 'q8'
- if symbol == '1':
- return '1', 0, 'qn'
- if symbol == '2':
- return '2', 0, 'qn'
- if symbol == '+':
- return '+', -1, 'q8'
- if symbol == '-':
- return '-', -1, 'q8'
- if symbol == ' ':
- return '0', 0, 'qn'
- tape = list(input())
- state_f = {'q0': q0, 'q1': q1, 'q2': q2, 'q3': q3, 'q4': q4, 'q5': q5, 'q6': q6, 'q7': q7, 'q8': q8}
- state = 'q0'
- index = 0
- states = []
- while state != 'qn':
- new_symbol, diff_index, state = state_f[state](tape[index])
- tape[index] = new_symbol
- index += diff_index
- print(''.join(tape))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement