zadania zestaw 2

This commit is contained in:
Weranda 2023-11-08 19:41:33 +01:00
parent 3b17708166
commit 977e2c8738
28 changed files with 509448 additions and 0 deletions

View File

@ -0,0 +1,12 @@
0 1 1
0 3 0
3 3 0
3 3 1
1 3 1
1 2 0
2 4 0
4 4 0
4 5 1
5 5 1
2 5 1
5 2 0

27
TaskB02/run.py Normal file
View File

@ -0,0 +1,27 @@
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")

Binary file not shown.

View File

@ -0,0 +1,4 @@
0 0 1
0 1 0
1 1 1
1 0 0

27
TaskB03/run.py Normal file
View File

@ -0,0 +1,27 @@
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 == 0
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")

Binary file not shown.

View File

@ -0,0 +1,4 @@
0 0 1
0 1 0
1 1 1
1 0 0

27
TaskB04/run.py Normal file
View File

@ -0,0 +1,27 @@
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 == 1
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")

Binary file not shown.

View File

@ -0,0 +1,55 @@
0 1 1
0 0 0
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
0 0 8
0 0 9
0 0 x
1 1 1
1 2 9
1 0 0
1 0 2
1 0 3
1 0 4
1 0 5
1 0 6
1 0 7
1 0 8
1 0 x
2 3 0
2 3 1
2 3 2
2 3 3
2 3 4
2 3 5
2 3 6
2 3 7
2 3 8
2 3 9
2 0 x
3 4 0
3 4 1
3 4 2
3 4 3
3 4 4
3 4 5
3 4 6
3 4 7
3 4 8
3 4 9
3 0 x
4 4 x
4 4 0
4 4 1
4 4 2
4 4 3
4 4 4
4 4 5
4 4 6
4 4 7
4 4 8
4 4 9

27
TaskB05/run.py Normal file
View File

@ -0,0 +1,27 @@
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 == 4
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")

BIN
TaskB05/test.exp Normal file

Binary file not shown.

189
TaskB06/fsa_description.arg Normal file
View File

@ -0,0 +1,189 @@
0-0-
1-0-
2-0-
3-0-
4-0-
5-0-
6-6-
0-1-h
0-0-a
0-0-b
0-0-c
0-0-d
0-0-e
0-0-f
0-0-g
0-0-i
0-0-j
0-0-k
0-0-l
0-0-m
0-0-n
0-0-o
0-0-p
0-0-q
0-0-r
0-0-s
0-0-t
0-0-u
0-0-v
0-0-w
0-0-x
0-0-y
0-0-z
1-1-h
1-2-a
1-0-b
1-0-c
1-0-d
1-0-e
1-0-f
1-0-g
1-0-i
1-0-j
1-0-k
1-0-l
1-0-m
1-0-n
1-0-o
1-0-p
1-0-q
1-0-r
1-0-s
1-0-t
1-0-u
1-0-v
1-0-w
1-0-x
1-0-y
1-0-z
2-3-m
2-0-a
2-0-b
2-0-c
2-0-d
2-0-e
2-0-f
2-0-g
2-0-h
2-0-i
2-0-j
2-0-k
2-0-l
2-0-n
2-0-o
2-0-p
2-0-q
2-0-r
2-0-s
2-0-t
2-0-u
2-0-v
2-0-w
2-0-x
2-0-y
2-0-z
3-4-l
3-0-a
3-0-b
3-0-c
3-0-d
3-0-e
3-0-f
3-0-g
3-0-h
3-0-i
3-0-j
3-0-k
3-0-m
3-0-n
3-0-o
3-0-p
3-0-q
3-0-r
3-0-s
3-0-t
3-0-u
3-0-v
3-0-w
3-0-x
3-0-y
3-0-z
4-5-e
4-0-a
4-0-b
4-0-c
4-0-d
4-0-f
4-0-g
4-0-h
4-0-i
4-0-j
4-0-k
4-0-l
4-0-m
4-0-n
4-0-o
4-0-p
4-0-q
4-0-r
4-0-s
4-0-t
4-0-u
4-0-v
4-0-w
4-0-x
4-0-y
4-0-z
5-6-t
5-0-a
5-0-b
5-0-c
5-0-d
5-0-e
5-0-f
5-0-g
5-0-h
5-0-i
5-0-j
5-0-k
5-0-l
5-0-m
5-0-n
5-0-o
5-0-p
5-0-q
5-0-r
5-0-s
5-0-u
5-0-v
5-0-w
5-0-x
5-0-y
5-0-z
6-6-a
6-6-b
6-6-c
6-6-d
6-6-e
6-6-f
6-6-g
6-6-h
6-6-i
6-6-j
6-6-k
6-6-l
6-6-m
6-6-n
6-6-o
6-6-p
6-6-q
6-6-r
6-6-s
6-6-t
6-6-u
6-6-v
6-6-w
6-6-x
6-6-y
6-6-z

32
TaskB06/run.py Normal file
View File

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

View File

@ -1,3 +1,4 @@
haml
hamlet
aaahamletbbb
sad hamlet asdasd

BIN
TaskB06/test.exp Normal file

Binary file not shown.

216
TaskB07/fsa_description.arg Normal file
View File

@ -0,0 +1,216 @@
0-0-
1-0-
2-0-
3-0-
4-0-
5-0-
6-0-
7-7-
0-1-o
0-0-a
0-0-b
0-0-c
0-0-d
0-0-e
0-0-f
0-0-g
0-0-i
0-0-j
0-0-k
0-0-l
0-0-m
0-0-n
0-0-h
0-0-p
0-0-q
0-0-r
0-0-s
0-0-t
0-0-u
0-0-v
0-0-w
0-0-x
0-0-y
0-0-z
1-1-o
1-2-p
1-0-b
1-0-c
1-0-d
1-0-e
1-0-f
1-0-g
1-0-i
1-0-j
1-0-k
1-0-l
1-0-m
1-0-n
1-0-h
1-0-a
1-0-q
1-0-r
1-0-s
1-0-t
1-0-u
1-0-v
1-0-w
1-0-x
1-0-y
1-0-z
2-3-h
2-0-a
2-0-b
2-0-c
2-0-d
2-0-e
2-0-f
2-0-g
2-0-m
2-0-i
2-0-j
2-0-k
2-0-l
2-0-n
2-0-o
2-0-p
2-0-q
2-0-r
2-0-s
2-0-t
2-0-u
2-0-v
2-0-w
2-0-x
2-0-y
2-0-z
3-4-e
3-0-a
3-0-b
3-0-c
3-0-d
3-0-l
3-0-f
3-0-g
3-0-h
3-0-i
3-0-j
3-0-k
3-0-m
3-0-n
3-0-o
3-0-p
3-0-q
3-0-r
3-0-s
3-0-t
3-0-u
3-0-v
3-0-w
3-0-x
3-0-y
3-0-z
4-5-l
4-0-a
4-0-b
4-0-c
4-0-d
4-0-f
4-0-g
4-0-h
4-0-i
4-0-j
4-0-k
4-0-e
4-0-m
4-0-n
4-0-o
4-0-p
4-0-q
4-0-r
4-0-s
4-0-t
4-0-u
4-0-v
4-0-w
4-0-x
4-0-y
4-0-z
5-6-i
5-0-a
5-0-b
5-0-c
5-0-d
5-0-e
5-0-f
5-0-g
5-0-h
5-0-t
5-0-j
5-0-k
5-0-l
5-0-m
5-0-n
5-0-o
5-0-p
5-0-q
5-0-r
5-0-s
5-0-u
5-0-v
5-0-w
5-0-x
5-0-y
5-0-z
6-7-a
6-0-b
6-0-c
6-0-d
6-0-e
6-0-f
6-0-g
6-0-h
6-0-i
6-0-j
6-0-k
6-0-l
6-0-m
6-0-n
6-0-o
6-0-p
6-0-q
6-0-r
6-0-s
6-0-t
6-0-u
6-0-v
6-0-w
6-0-x
6-0-y
6-0-z
7-7-a
7-7-b
7-7-c
7-7-d
7-7-e
7-7-f
7-7-g
7-7-h
7-7-i
7-7-j
7-7-k
7-7-l
7-7-m
7-7-n
7-7-o
7-7-p
7-7-q
7-7-r
7-7-s
7-7-t
7-7-u
7-7-v
7-7-w
7-7-x
7-7-y
7-7-z

32
TaskB07/run.py Normal file
View File

@ -0,0 +1,32 @@
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")

File diff suppressed because it is too large Load Diff

BIN
TaskB07/test.exp Normal file

Binary file not shown.

189
TaskB08/fsa_description.arg Normal file
View File

@ -0,0 +1,189 @@
0-0-
1-0-
2-0-
3-0-
4-0-
5-0-
6-6-
0-1-j
0-0-a
0-0-b
0-0-c
0-0-d
0-0-e
0-0-f
0-0-g
0-0-i
0-0-h
0-0-k
0-0-l
0-0-m
0-0-n
0-0-o
0-0-p
0-0-q
0-0-r
0-0-s
0-0-t
0-0-u
0-0-v
0-0-w
0-0-x
0-0-y
0-0-z
1-1-j
1-2-u
1-0-b
1-0-c
1-0-d
1-0-e
1-0-f
1-0-g
1-0-i
1-0-j
1-0-k
1-0-l
1-0-m
1-0-n
1-0-o
1-0-p
1-0-q
1-0-r
1-0-s
1-0-t
1-0-a
1-0-v
1-0-w
1-0-x
1-0-y
1-0-z
2-3-l
2-0-a
2-0-b
2-0-c
2-0-d
2-0-e
2-0-f
2-0-g
2-0-h
2-0-i
2-0-j
2-0-k
2-0-m
2-0-n
2-0-o
2-0-p
2-0-q
2-0-r
2-0-s
2-0-t
2-0-u
2-0-v
2-0-w
2-0-x
2-0-y
2-0-z
3-4-i
3-0-a
3-0-b
3-0-c
3-0-d
3-0-e
3-0-f
3-0-g
3-0-h
3-0-l
3-0-j
3-0-k
3-0-m
3-0-n
3-0-o
3-0-p
3-0-q
3-0-r
3-0-s
3-0-t
3-0-u
3-0-v
3-0-w
3-0-x
3-0-y
3-0-z
4-5-e
4-0-a
4-0-b
4-0-c
4-0-d
4-0-f
4-0-g
4-0-h
4-0-i
4-0-j
4-0-k
4-0-l
4-0-m
4-0-n
4-0-o
4-0-p
4-0-q
4-0-r
4-0-s
4-0-t
4-0-u
4-0-v
4-0-w
4-0-x
4-0-y
4-0-z
5-6-t
5-0-a
5-0-b
5-0-c
5-0-d
5-0-e
5-0-f
5-0-g
5-0-h
5-0-i
5-0-j
5-0-k
5-0-l
5-0-m
5-0-n
5-0-o
5-0-p
5-0-q
5-0-r
5-0-s
5-0-u
5-0-v
5-0-w
5-0-x
5-0-y
5-0-z
6-6-a
6-6-b
6-6-c
6-6-d
6-6-e
6-6-f
6-6-g
6-6-h
6-6-i
6-6-j
6-6-k
6-6-l
6-6-m
6-6-n
6-6-o
6-6-p
6-6-q
6-6-r
6-6-s
6-6-t
6-6-u
6-6-v
6-6-w
6-6-x
6-6-y
6-6-z

32
TaskB08/run.py Normal file
View File

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

File diff suppressed because it is too large Load Diff

BIN
TaskB08/test.exp Normal file

Binary file not shown.

216
TaskB09/fsa_description.arg Normal file
View File

@ -0,0 +1,216 @@
0-0-
1-0-
2-0-
3-0-
4-0-
5-0-
6-0-
7-7-
0-1-m
0-0-a
0-0-b
0-0-c
0-0-d
0-0-e
0-0-f
0-0-g
0-0-i
0-0-j
0-0-k
0-0-l
0-0-o
0-0-n
0-0-h
0-0-p
0-0-q
0-0-r
0-0-s
0-0-t
0-0-u
0-0-v
0-0-w
0-0-x
0-0-y
0-0-z
1-1-m
1-2-a
1-0-b
1-0-c
1-0-d
1-0-e
1-0-f
1-0-g
1-0-i
1-0-j
1-0-k
1-0-l
1-0-m
1-0-n
1-0-h
1-0-p
1-0-q
1-0-r
1-0-s
1-0-t
1-0-u
1-0-v
1-0-w
1-0-x
1-0-y
1-0-z
2-3-c
2-0-a
2-0-b
2-0-h
2-0-d
2-0-e
2-0-f
2-0-g
2-0-m
2-0-i
2-0-j
2-0-k
2-0-l
2-0-n
2-0-o
2-0-p
2-0-q
2-0-r
2-0-s
2-0-t
2-0-u
2-0-v
2-0-w
2-0-x
2-0-y
2-0-z
3-4-b
3-0-a
3-0-e
3-0-c
3-0-d
3-0-l
3-0-f
3-0-g
3-0-h
3-0-i
3-0-j
3-0-k
3-0-m
3-0-n
3-0-o
3-0-p
3-0-q
3-0-r
3-0-s
3-0-t
3-0-u
3-0-v
3-0-w
3-0-x
3-0-y
3-0-z
4-5-e
4-0-a
4-0-b
4-0-c
4-0-d
4-0-f
4-0-g
4-0-h
4-0-i
4-0-j
4-0-k
4-0-l
4-0-m
4-0-n
4-0-o
4-0-p
4-0-q
4-0-r
4-0-s
4-0-t
4-0-u
4-0-v
4-0-w
4-0-x
4-0-y
4-0-z
5-6-t
5-0-a
5-0-b
5-0-c
5-0-d
5-0-e
5-0-f
5-0-g
5-0-h
5-0-i
5-0-j
5-0-k
5-0-l
5-0-m
5-0-n
5-0-o
5-0-p
5-0-q
5-0-r
5-0-s
5-0-u
5-0-v
5-0-w
5-0-x
5-0-y
5-0-z
6-7-h
6-0-b
6-0-c
6-0-d
6-0-e
6-0-f
6-0-g
6-0-a
6-0-i
6-0-j
6-0-k
6-0-l
6-0-m
6-0-n
6-0-o
6-0-p
6-0-q
6-0-r
6-0-s
6-0-t
6-0-u
6-0-v
6-0-w
6-0-x
6-0-y
6-0-z
7-7-a
7-7-b
7-7-c
7-7-d
7-7-e
7-7-f
7-7-g
7-7-h
7-7-i
7-7-j
7-7-k
7-7-l
7-7-m
7-7-n
7-7-o
7-7-p
7-7-q
7-7-r
7-7-s
7-7-t
7-7-u
7-7-v
7-7-w
7-7-x
7-7-y
7-7-z

32
TaskB09/run.py Normal file
View File

@ -0,0 +1,32 @@
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")

File diff suppressed because it is too large Load Diff

BIN
TaskB09/test.exp Normal file

Binary file not shown.