jfz-2023-s473564/TaskB09/run.py

32 lines
945 B
Python

import sys
def is_accepted(fsa, input_string):
current_state = 0
for symbol in input_string:
if symbol == ' ':
# If the current state is 7, stay in 7, otherwise transition to state 0
# PROGRAM NIE CHCE CZYTAĆ SPACJI JAKO ZNAK W PLIKU, ZAPISUJE JĄ JAKO PUSTY ZNAK
if current_state != 7:
current_state = 0
elif (current_state, symbol) in fsa:
current_state = fsa[(current_state, symbol)]
else:
return False
return current_state == 7
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")