jfz-2023-s473564/TaskC06/run.py
2023-11-27 14:34:07 +01:00

33 lines
969 B
Python

import sys
fsa_file = "./medium.in" # FSA FILE
fsa = {}
with open(fsa_file, 'r', encoding='utf-8') as f:
for line in f:
parts = line.strip().split('\t')
if len(parts) == 3:
state, next_state, symbol = parts
state, next_state = int(state), int(next_state)
if (state, '') not in fsa:
fsa[(state, '')] = {}
fsa[(state, '')][symbol] = next_state
output_file_path = "./test.txt" # OUTPUT FILE
def get_paths(current_state, current_path):
if (current_state, '') not in fsa:
return [current_path]
paths = []
for symbol, next_state in fsa[(current_state, '')].items():
paths += get_paths(next_state, current_path + symbol)
return paths
with open(output_file_path, 'w', encoding='utf-8') as output_file:
start_state = min(state for state, _ in fsa)
paths = get_paths(start_state, '')
for path in paths:
output_file.write(path + '\n')