dfsgs
This commit is contained in:
parent
f88f391fdc
commit
6ff1bc50b2
0
TaskF04/Makefile
Normal file
0
TaskF04/Makefile
Normal file
52
TaskF04/run
Executable file
52
TaskF04/run
Executable file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
sciezki = {};
|
||||
stanyakceptujace = [];
|
||||
f = open(sys.argv[1], "r");
|
||||
lines = f.readlines();
|
||||
for line in lines:
|
||||
answer = re.match('^([0-9]+) ([0-9]+) ([a-z]*|<eps>)$', line);
|
||||
if answer:
|
||||
try:
|
||||
try:
|
||||
sciezki[answer.group(1)][answer.group(3)].add(answer.group(2));
|
||||
except KeyError:
|
||||
sciezki[answer.group(1)][answer.group(3)] = {answer.group(2)};
|
||||
except KeyError:
|
||||
sciezki.update({answer.group(1):{}})
|
||||
sciezki[answer.group(1)][answer.group(3)] = {answer.group(2)};
|
||||
else:
|
||||
stanyakceptujace.append(line[:-1]);
|
||||
for input in sys.stdin.readlines():
|
||||
act = {str(0)};
|
||||
for char in input[:-1]:
|
||||
tca = set();
|
||||
for z in act:
|
||||
try:
|
||||
if sciezki[z].__contains__('<eps>'):
|
||||
tca.update(sciezki[z]['<eps>']);
|
||||
except KeyError:
|
||||
pass;
|
||||
act.update(tca);
|
||||
tca = set();
|
||||
for z in act:
|
||||
try:
|
||||
tca.update(sciezki[z][char]);
|
||||
except KeyError:
|
||||
pass;
|
||||
act = tca;
|
||||
tca = set();
|
||||
for z in act:
|
||||
try:
|
||||
if sciezki[z].__contains__('<eps>'):
|
||||
tca.update(sciezki[z]['<eps>']);
|
||||
except KeyError:
|
||||
pass;
|
||||
act.update(tca);
|
||||
if len(act.intersection(stanyakceptujace))>0:
|
||||
print("TRUE "+input[:-1])
|
||||
else:
|
||||
print("FALSE "+input[:-1])
|
Loading…
Reference in New Issue
Block a user