jfz-2023-s473564/TaskB02/run.py

28 lines
671 B
Python
Raw Normal View History

2023-11-08 19:41:33 +01:00
import sys
def is_accepted(fsa, input_string):
current_state = 0
for symbol in input_string:
if (current_state, symbol) in fsa:
current_state = fsa[(current_state, symbol)]
else:
return False
return current_state == 2
fsa_file = sys.argv[1]
fsa = {}
with open(fsa_file, 'r') as f:
for line in f:
parts = line.strip().split(' ')
if len(parts) == 3:
state, next_state, symbol = parts
fsa[(int(state), symbol)] = int(next_state)
for line in sys.stdin:
input_string = line.strip()
if is_accepted(fsa, input_string):
print("YES")
else:
print("NO")