Compare commits
16 Commits
7534251f7b
...
master
Author | SHA1 | Date | |
---|---|---|---|
41b58e6808 | |||
d84cd90855 | |||
|
9033821f8e | ||
ee7d0e9e08 | |||
|
f4afb37947 | ||
ef25cc15f7 | |||
|
566bb7c07c | ||
|
bc7afb24c1 | ||
|
3b5056ca2d | ||
|
27bcde8f09 | ||
|
841655da18 | ||
|
77de00fd23 | ||
|
2e63e7e82c | ||
|
d80adf4e0f | ||
5e9c631528 | |||
|
484523b145 |
@ -2,7 +2,7 @@
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
.idea/encodings.xml
Normal file
6
.idea/encodings.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/TaskF05/simple.out" charset="windows-1252" />
|
||||
</component>
|
||||
</project>
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||
</project>
|
@ -2,7 +2,7 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
167
README.md
167
README.md
@ -10,13 +10,13 @@ Gdyby była potrzeba przedyskutowania czegoś to możemy zostać po zajęciach.
|
||||
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach oraz zaliczyć kolokwium.
|
||||
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
||||
Oprócz tego należy zaliczyć kolokwium z wyrażeń regularnych na ostatnich zajęciach. Sam wynik kolokwium
|
||||
nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da się zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
||||
- mniej niż 30 punktów - 2
|
||||
- 30-34- 3
|
||||
- 35-39- 3.5
|
||||
- 40-44- 4
|
||||
- 45-49- 4.5
|
||||
- więcej niż 49- 5
|
||||
nie będzie wpływał na ocenę, ale bez zdanego kolokwium nie da się zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
||||
- mniej niż 29 punktów - 2
|
||||
- 29-33- 3
|
||||
- 34-38- 3.5
|
||||
- 39-43- 4
|
||||
- 44-48- 4.5
|
||||
- więcej niż 48- 5
|
||||
|
||||
#### Wysyłanie zadań
|
||||
|
||||
@ -239,3 +239,156 @@ re.search('\\', r'a\bc')
|
||||
re.search(r'\\', r'a\bc')
|
||||
re.search('\\\\', r'a\bc')
|
||||
```
|
||||
## Zajęcia 4 27.11.2023 Wyrażenia regularne 2
|
||||
|
||||
E00 - E09 - po jedno dla każdego
|
||||
|
||||
E10 - E36 - po jedno dla każdego
|
||||
|
||||
E37 - E43 - po jedno dla każdego
|
||||
|
||||
E44 - E48 - po jedno dla każdego
|
||||
|
||||
## Zajęcia 5 11.12.2023 Wyrażenia regularne 3
|
||||
|
||||
F00 - F05 - do wykonania przez każdego
|
||||
|
||||
Proszę o przekopiowanie sobie pliku polish_wiki_excerpt.in z zadania F00 do katalogów z pozostałymi zadaniami
|
||||
|
||||
#### RE SUB
|
||||
```
|
||||
re.sub(pattern, replacement, string)
|
||||
|
||||
re.sub('a','b', 'ala ma kota')
|
||||
```
|
||||
|
||||
#### backreferencje:
|
||||
|
||||
```
|
||||
|
||||
re.search(r' \d+ \d+', 'ala ma 41 41 kota')
|
||||
re.search(r' \d+ \d+', 'ala ma 41 123 kota')
|
||||
re.search(r' (\d+) \1', 'ala ma 41 41 kota')
|
||||
re.search(r' (\d+) \1', 'ala ma 41 123 kota')
|
||||
```
|
||||
|
||||
#### lookahead ( to sa takie assercje):
|
||||
```
|
||||
re.search(r'ma kot', 'ala ma kot')
|
||||
re.search(r'ma kot(?=[ay])', 'ala ma kot')
|
||||
re.search(r'ma kot(?=[ay])', 'ala ma kotka')
|
||||
re.search(r'ma kot(?=[ay])', 'ala ma koty')
|
||||
re.search(r'ma kot(?=[ay])', 'ala ma kota')
|
||||
|
||||
re.search(r'ma kot(?![ay])', 'ala ma kot')
|
||||
re.search(r'ma kot(?![ay])', 'ala ma kotka')
|
||||
re.search(r'ma kot(?![ay])', 'ala ma koty')
|
||||
re.search(r'ma kot(?![ay])', 'ala ma kota')
|
||||
```
|
||||
|
||||
#### named groups
|
||||
```
|
||||
r = re.search(r'ma (?P<ilepsow>\d+) kotow i (?P<ilekotow>\d+) psow', 'ala ma 100 kotow i 200 psow')
|
||||
r.groups()
|
||||
r.groups('ilepsow')
|
||||
r.groups('ilekotow')
|
||||
```
|
||||
|
||||
#### re.split
|
||||
```
|
||||
('a,b.c,d').split(',')
|
||||
('a,b.c,d').split(',')
|
||||
('a,b.c,d').split(',.')
|
||||
re.split(r',', 'a,b.c,d')
|
||||
re.split(r'[.,]', 'a,b.c,d')
|
||||
```
|
||||
#### \w word character
|
||||
```
|
||||
\w - matchuje Unicod word character , jeżeli flaga ASCII to [a-zA-Z0-9_]
|
||||
\w - odwrotne do \W, jezeli flaga ASCI to [^a-zA-Z0-9_]
|
||||
|
||||
re.findall(r'\w+', 'ala ma 3 koty.')
|
||||
re.findall(r'\W+', 'ala ma 3 koty.')
|
||||
```
|
||||
#### początek albo koniec słowa | word boundary
|
||||
```
|
||||
re.search(r'\bkot\b', 'Ala ma kota')
|
||||
re.search(r'\bkot\b', 'Ala ma kot')
|
||||
re.search(r'\bkot\b', 'Ala ma kot.')
|
||||
re.search(r'\bkot\b', 'Ala ma kot ')
|
||||
|
||||
re.search(r'\Bot\B', 'Ala ma kot ')
|
||||
re.search(r'\Bot\B', 'Ala ma kota ')
|
||||
```
|
||||
#### MULTILINE
|
||||
```
|
||||
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek')
|
||||
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek', re.MULTILINE)
|
||||
```
|
||||
F00 - F05 - do wykonania przez każdego
|
||||
|
||||
|
||||
## Zajęcia 6 8.01.2024 Kodowanie i re2
|
||||
|
||||
Proszę o przekopiowanie sobie pliku polish_wiki_excerpt.in z zadania F00 do katalogów G00, G03.
|
||||
|
||||
Instalacja biblioteki re2: https://pypi.org/project/google-re2/
|
||||
|
||||
### DFA i NDFA
|
||||
|
||||
```
|
||||
import re2 as re
|
||||
n = 50
|
||||
regexp = "a?"*n+"a"*n
|
||||
s = "a"*n
|
||||
re.match(regexp, s)
|
||||
```
|
||||
|
||||
```
|
||||
re.match(r"(\d)abc\1", "3abc3") # re2 nie obsługuje backreferencji
|
||||
```
|
||||
|
||||
re2 max memory - podniesienie limitu
|
||||
```
|
||||
setting = re2.Options()
|
||||
setting.max_mem = 1 << 30 # to jest rozmiar podany w bajtach, czyli tutaj 1GB - to jest maksimum o ile możemy podnieść limit
|
||||
pattern = re2.compile(regexp, setting)
|
||||
```
|
||||
|
||||
time # mierzenie czasu działania
|
||||
```
|
||||
start = time.time()
|
||||
withre2()
|
||||
d1 = t1ime.time() - start
|
||||
print(f'That took {d1:.2f} seconds.\n')
|
||||
```
|
||||
Gdyby ktoś chciał poczytać więcej:
|
||||
https://swtch.com/~rsc/regexp/regexp1.html
|
||||
|
||||
### UTF-8
|
||||
```
|
||||
c = "ℋ"
|
||||
ord(c)
|
||||
chr(8459)
|
||||
8* 16**2 + 0 * 16**(1) + 0*16**(0)
|
||||
15*16**3 + 15* 16**2 + 15 * 16**(1) + 15*16**(0)
|
||||
```
|
||||
|
||||
```
|
||||
xxd -b file
|
||||
xxd file
|
||||
```
|
||||
|
||||
## KOLOKWIUM 2024-01-22
|
||||
Operatory, obowiązujące na kolokwium
|
||||
====================================
|
||||
|
||||
* kwantyfikatory `-` `*` `+` `?` `{n}` `{n,}` `{n, m}`
|
||||
* alternatywa — `|`
|
||||
* klasy znaków — `[...]`
|
||||
* zanegowane klasy znaków — `[^...]`
|
||||
* dowolny znak — `.`
|
||||
* unieważnianie znaków specjalnych — \
|
||||
* operatory zakotwiczające — `^` `$`
|
||||
|
||||
W repozytorium znajdują się przykładowe pliki z zadaniami.
|
9
TaskB00/test1.out
Normal file
9
TaskB00/test1.out
Normal file
@ -0,0 +1,9 @@
|
||||
NO
|
||||
YES
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
14
TaskB01/test.out
Normal file
14
TaskB01/test.out
Normal file
@ -0,0 +1,14 @@
|
||||
YES
|
||||
NO
|
||||
YES
|
||||
NO
|
||||
YES
|
||||
NO
|
||||
NO
|
||||
YES
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
@ -1 +0,0 @@
|
||||
q
|
50000
TaskB05/polish_wiki_excerpt_only_digits.out
Normal file
50000
TaskB05/polish_wiki_excerpt_only_digits.out
Normal file
File diff suppressed because it is too large
Load Diff
6
TaskB05/simple.out
Normal file
6
TaskB05/simple.out
Normal file
@ -0,0 +1,6 @@
|
||||
NO
|
||||
YES
|
||||
NO
|
||||
NO
|
||||
YES
|
||||
YES
|
201
TaskB07/fsa_description.arg
Normal file
201
TaskB07/fsa_description.arg
Normal file
@ -0,0 +1,201 @@
|
||||
0 0 a
|
||||
0 0 b
|
||||
0 0 c
|
||||
0 0 d
|
||||
0 0 e
|
||||
0 0 f
|
||||
0 0 g
|
||||
0 0 h
|
||||
0 0 i
|
||||
0 0 j
|
||||
0 0 k
|
||||
0 0 l
|
||||
0 0 m
|
||||
0 0 n
|
||||
0 1 o
|
||||
0 0 p
|
||||
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 0 a
|
||||
1 0 b
|
||||
1 0 c
|
||||
1 0 d
|
||||
1 0 e
|
||||
1 0 f
|
||||
1 0 g
|
||||
1 0 h
|
||||
1 0 i
|
||||
1 0 j
|
||||
1 0 k
|
||||
1 0 l
|
||||
1 0 m
|
||||
1 0 n
|
||||
1 0 o
|
||||
1 2 p
|
||||
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 0 a
|
||||
2 0 b
|
||||
2 0 c
|
||||
2 0 d
|
||||
2 0 e
|
||||
2 0 f
|
||||
2 0 g
|
||||
2 3 h
|
||||
2 0 i
|
||||
2 0 j
|
||||
2 0 k
|
||||
2 0 l
|
||||
2 0 m
|
||||
2 0 n
|
||||
2 0 o
|
||||
2 0 p
|
||||
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 0 a
|
||||
3 0 b
|
||||
3 0 c
|
||||
3 0 d
|
||||
3 4 e
|
||||
3 0 f
|
||||
3 0 g
|
||||
3 0 h
|
||||
3 0 i
|
||||
3 0 j
|
||||
3 0 k
|
||||
3 0 l
|
||||
3 0 m
|
||||
3 0 n
|
||||
3 0 o
|
||||
3 0 p
|
||||
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 0 a
|
||||
4 0 b
|
||||
4 0 c
|
||||
4 0 d
|
||||
4 0 e
|
||||
4 0 f
|
||||
4 0 g
|
||||
4 0 h
|
||||
4 0 i
|
||||
4 0 j
|
||||
4 0 k
|
||||
4 5 l
|
||||
4 0 m
|
||||
4 0 n
|
||||
4 0 o
|
||||
4 0 p
|
||||
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 0 a
|
||||
5 0 b
|
||||
5 0 c
|
||||
5 0 d
|
||||
5 0 e
|
||||
5 0 f
|
||||
5 0 g
|
||||
5 0 h
|
||||
5 6 i
|
||||
5 0 j
|
||||
5 0 k
|
||||
5 0 l
|
||||
5 0 m
|
||||
5 0 n
|
||||
5 0 o
|
||||
5 0 p
|
||||
5 0 r
|
||||
5 0 s
|
||||
5 0 t
|
||||
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 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 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
|
||||
7
|
96
TaskB07/run.py
Normal file
96
TaskB07/run.py
Normal file
@ -0,0 +1,96 @@
|
||||
# B00 (2021)
|
||||
#
|
||||
import sys
|
||||
|
||||
|
||||
class FSA:
|
||||
|
||||
def __init__(self):
|
||||
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||
self.final_states = set()
|
||||
|
||||
self.transitions = dict()
|
||||
self.alphabet = set()
|
||||
|
||||
def add_transition(self, state_from, state_to, symbol):
|
||||
|
||||
if state_from in self.transitions.keys():
|
||||
self.transitions[state_from][symbol] = state_to
|
||||
else:
|
||||
self.transitions[state_from] = dict()
|
||||
self.transitions[state_from][symbol] = state_to
|
||||
|
||||
def add_final_state(self, state):
|
||||
self.final_states.add(state)
|
||||
|
||||
def get_final_state(self, string):
|
||||
|
||||
current_state = self.initial_state
|
||||
for symbol in string:
|
||||
current_state = self.transitions[current_state][symbol]
|
||||
return current_state
|
||||
|
||||
def accepts(self, string):
|
||||
|
||||
if self.get_final_state(string) in self.final_states:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
fsa = FSA()
|
||||
|
||||
# def build_fsa(self): #, dfa_desciption
|
||||
table = open(sys.argv[1]) # dfa_desciption
|
||||
for line in table:
|
||||
line = line.rstrip('\n')
|
||||
if len(line.split('\t')) == 3:
|
||||
a, b, c = line.split('\t')
|
||||
fsa.add_transition(a, b, c) #self
|
||||
fsa.alphabet.add(c) #self
|
||||
elif len(line.split('\t')) == 1:
|
||||
fsa.add_final_state(line) #self
|
||||
else:
|
||||
assert False
|
||||
|
||||
|
||||
# def run_dfa(self): # , input
|
||||
for line in sys.stdin: # open(input)
|
||||
line = line.rstrip()
|
||||
|
||||
line_n = list(line)
|
||||
|
||||
for i in range(len(line_n)):
|
||||
if line_n[i] not in fsa.alphabet: #self
|
||||
line_n[i] = 'x'
|
||||
|
||||
if fsa.accepts(line_n): #self
|
||||
print('YES')
|
||||
else:
|
||||
print('NO')
|
||||
|
||||
# def run_dfa_and_compare(self, input, expected):
|
||||
#
|
||||
# accepts = []
|
||||
#
|
||||
# for line in open(input): # sys.stdin
|
||||
# line = line.rstrip()
|
||||
#
|
||||
# line_n = list(line)
|
||||
#
|
||||
# for i in range(len(line_n)):
|
||||
# if line_n[i] not in self.alphabet:
|
||||
# line_n[i] = 'x'
|
||||
#
|
||||
# if self.accepts(line_n):
|
||||
# accepts.append('YES')
|
||||
# else:
|
||||
# accepts.append('NO')
|
||||
#
|
||||
# i = 0
|
||||
# for line in open(expected):
|
||||
# if line.rstrip() != accepts[i]:
|
||||
# print('Incorrect in line ' + str(i))
|
||||
# return
|
||||
# i = i + 1
|
||||
# print('Correct')
|
169442
TaskB07/shakespeare_ascii_lower.in
Normal file
169442
TaskB07/shakespeare_ascii_lower.in
Normal file
File diff suppressed because it is too large
Load Diff
0
TaskB07/shakespeare_ascii_lower.out
Normal file
0
TaskB07/shakespeare_ascii_lower.out
Normal file
0
TaskB07/simple.out
Normal file
0
TaskB07/simple.out
Normal file
@ -1,5 +1,5 @@
|
||||
import sys
|
||||
|
||||
import copy
|
||||
|
||||
class FSA:
|
||||
|
||||
@ -20,11 +20,27 @@ class FSA:
|
||||
else:
|
||||
self.transitions[state_from] = dict()
|
||||
self.transitions[state_from][symbol] = {state_to}
|
||||
def get_final_state(self, string):
|
||||
|
||||
current_states = {self.initial_state}
|
||||
for symbol in string:
|
||||
new_current_states = set()
|
||||
for current_state in current_states:
|
||||
try:
|
||||
new_current_states |= self.transitions[current_state][symbol]
|
||||
except:
|
||||
pass
|
||||
current_states = copy.deepcopy(new_current_states)
|
||||
return current_states
|
||||
|
||||
def add_final_state(self, state):
|
||||
self.final_states.add(state)
|
||||
|
||||
|
||||
def accepts(self, string):
|
||||
final_states = self.get_final_states(string)
|
||||
for final_state in final_states:
|
||||
if final_state in self.final_states:
|
||||
return True
|
||||
return False
|
||||
fsa = FSA()
|
||||
|
||||
table = open(sys.argv[1])
|
||||
|
@ -1,9 +1,7 @@
|
||||
import sys
|
||||
|
||||
|
||||
class FSA:
|
||||
|
||||
def __init__(self,):
|
||||
class NFA:
|
||||
def __init__(self):
|
||||
self.initial_state = '0'
|
||||
self.final_states = set()
|
||||
|
||||
@ -24,25 +22,32 @@ class FSA:
|
||||
def add_final_state(self, state):
|
||||
self.final_states.add(state)
|
||||
|
||||
def get_final_states(self, string):
|
||||
current_states = {self.initial_state}
|
||||
for symbol in string:
|
||||
current_states = {state for current_state in current_states for state in self.transitions.get(current_state, {}).get(symbol, set())}
|
||||
return current_states
|
||||
|
||||
fsa = FSA()
|
||||
def accepts(self, string):
|
||||
return any(final_state in self.final_states for final_state in self.get_final_states(string))
|
||||
|
||||
|
||||
nfa = NFA()
|
||||
|
||||
table = open(sys.argv[1])
|
||||
for line in table:
|
||||
line = line.rstrip()
|
||||
|
||||
if len(line.split('\t')) == 3:
|
||||
a, b, c = line.split('\t')
|
||||
fsa.add_transition(a, b, c)
|
||||
fsa.alphabet.add(c)
|
||||
line = line.rstrip('\n')
|
||||
if len(line.split(' ')) == 3:
|
||||
a, b, c = line.split(' ')
|
||||
c = c.replace("'","")
|
||||
c = list(c)
|
||||
for x in c:
|
||||
nfa.add_transition(a, b, x)
|
||||
nfa.alphabet.add(x)
|
||||
elif len(line.split(' ')) == 1:
|
||||
nfa.add_final_state(line)
|
||||
else:
|
||||
fsa.add_final_state(line)
|
||||
|
||||
assert False
|
||||
|
||||
for line in sys.stdin:
|
||||
line = line.rstrip()
|
||||
|
||||
if fsa.accepts(line):
|
||||
print('YES')
|
||||
else:
|
||||
print('NO')
|
||||
print("YES" if nfa.accepts(line.strip()) else "NO")
|
@ -0,0 +1,7 @@
|
||||
YES
|
||||
YES
|
||||
YES
|
||||
NO
|
||||
NO
|
||||
NO
|
||||
NO
|
3512
TaskC06/medium.out
3512
TaskC06/medium.out
File diff suppressed because it is too large
Load Diff
40
TaskC06/run.py
Normal file
40
TaskC06/run.py
Normal file
@ -0,0 +1,40 @@
|
||||
import sys
|
||||
|
||||
class FSA:
|
||||
def __init__(self):
|
||||
self.initial_state = '0'
|
||||
self.final_states = set()
|
||||
self.transitions = dict()
|
||||
self.alphabet = set()
|
||||
|
||||
def add_transition(self, state_from, state_to, symbol):
|
||||
if state_from in self.transitions.keys():
|
||||
if symbol not in self.transitions[state_from].keys():
|
||||
self.transitions[state_from][symbol] = {state_to}
|
||||
else:
|
||||
self.transitions[state_from][symbol] |= {state_to}
|
||||
else:
|
||||
self.transitions[state_from] = dict()
|
||||
self.transitions[state_from][symbol] = {state_to}
|
||||
def add_final_state(self, state):
|
||||
self.final_states.add(state)
|
||||
def get_all_paths(self):
|
||||
paths = []
|
||||
stack = [('', '0')]
|
||||
while stack:
|
||||
current_path, current_state = stack.pop()
|
||||
if current_state in self.final_states:
|
||||
paths.append(current_path)
|
||||
if current_state in self.transitions:
|
||||
for symbol, states in self.transitions[current_state].items():
|
||||
stack.extend((current_path + symbol, state) for state in states)
|
||||
return sorted(paths)
|
||||
|
||||
fsa = FSA()
|
||||
|
||||
for line in sys.stdin:
|
||||
parts = line.strip().split('\t')
|
||||
if parts == ['']: break
|
||||
[fsa.add_transition(parts[0], parts[1], parts[2]) for parts in [parts]] if len(parts) == 3 else fsa.add_final_state(parts[0])
|
||||
for path in fsa.get_all_paths():
|
||||
print(path)
|
@ -0,0 +1,4 @@
|
||||
biały
|
||||
dom
|
||||
piła
|
||||
stali
|
@ -0,0 +1,3 @@
|
||||
biały
|
||||
piła
|
||||
stali
|
11
TaskD01/run.py
Normal file
11
TaskD01/run.py
Normal file
@ -0,0 +1,11 @@
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def re_find_hamlet(input):
|
||||
for _, l in enumerate(input, start=1):
|
||||
if re.search(r'\bHamlet\b', l):
|
||||
print(l.strip())
|
||||
|
||||
|
||||
re_find_hamlet(sys.stdin)
|
2
TaskD01/simple.out
Normal file
2
TaskD01/simple.out
Normal file
@ -0,0 +1,2 @@
|
||||
Here comes Hamlet
|
||||
Hamlet Hamlet again
|
11
TaskD02/run.py
Normal file
11
TaskD02/run.py
Normal file
@ -0,0 +1,11 @@
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def pies(input):
|
||||
for _, l in enumerate(input, start=1):
|
||||
if re.search(r'\bpies\b', l, flags=re.IGNORECASE):
|
||||
print(l.strip())
|
||||
|
||||
|
||||
pies(sys.stdin)
|
3
TaskD02/simple.out
Normal file
3
TaskD02/simple.out
Normal file
@ -0,0 +1,3 @@
|
||||
Pies ma Alę
|
||||
Kot i pies to zwierzęta
|
||||
pies
|
11
TaskD03/run.py
Normal file
11
TaskD03/run.py
Normal file
@ -0,0 +1,11 @@
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def pog_champ(input):
|
||||
for _, l in enumerate(input, start=1):
|
||||
if re.search(r'19\d{2} r\.', l):
|
||||
print(l.strip())
|
||||
|
||||
|
||||
pog_champ(sys.stdin)
|
3
TaskD03/simple.out
Normal file
3
TaskD03/simple.out
Normal file
@ -0,0 +1,3 @@
|
||||
Kiedyś był 1934 r.
|
||||
Kiedyś był 1934 r.fsdfsdfsdf
|
||||
1934 r. to jakaś data
|
12
TaskD04/run.py
Normal file
12
TaskD04/run.py
Normal file
@ -0,0 +1,12 @@
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def find_numbers(s):
|
||||
return re.compile(r'\d+').findall(s)
|
||||
|
||||
input = sys.stdin.read().splitlines()
|
||||
|
||||
for l in input:
|
||||
r = find_numbers(l)
|
||||
print(f"{' '.join(r)}\n" if r else '', end='')
|
4
TaskD04/simple.out
Normal file
4
TaskD04/simple.out
Normal file
@ -0,0 +1,4 @@
|
||||
34234 34 5
|
||||
34535
|
||||
34
|
||||
1992 1999
|
36
TaskE00/description.txt
Normal file
36
TaskE00/description.txt
Normal file
@ -0,0 +1,36 @@
|
||||
Liczby podzielne przez 5
|
||||
========================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy zadany napis jest liczbą całkowitą
|
||||
podzielną przez 5. Napis nie powinien zawierać zer nieznaczących.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the given string is an integer divisible by 5.
|
||||
The string should not contain leading zeros.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 0.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 0.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 0/10
|
10
TaskE00/test.exp
Normal file
10
TaskE00/test.exp
Normal file
@ -0,0 +1,10 @@
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
10
TaskE00/test.in
Normal file
10
TaskE00/test.in
Normal file
@ -0,0 +1,10 @@
|
||||
-1005
|
||||
-50
|
||||
-76
|
||||
0
|
||||
00
|
||||
01000
|
||||
1000
|
||||
353
|
||||
465
|
||||
@!q
|
35
TaskE01/description.txt
Normal file
35
TaskE01/description.txt
Normal file
@ -0,0 +1,35 @@
|
||||
Liczby podzielne przez 25
|
||||
=========================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy zadany napis jest dodatnią liczbą
|
||||
podzielną przez 25.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the given string is a positive integer divisible by 25.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 1.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 1.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 1/10
|
8
TaskE01/test.exp
Normal file
8
TaskE01/test.exp
Normal file
@ -0,0 +1,8 @@
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
no
|
8
TaskE01/test.in
Normal file
8
TaskE01/test.in
Normal file
@ -0,0 +1,8 @@
|
||||
0
|
||||
1000
|
||||
111111125
|
||||
25
|
||||
353
|
||||
465
|
||||
@!q
|
||||
x50
|
36
TaskE02/description.txt
Normal file
36
TaskE02/description.txt
Normal file
@ -0,0 +1,36 @@
|
||||
Kody pocztowe
|
||||
=============
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy wydobyć z kodu pocztowego kod miasta (2 pierwsze
|
||||
cyfry). Jeśli napis nie jest kodem pocztowym, należy wypisać "<NONE>".
|
||||
Zakładamy, że kod pocztowy składa się z 2 cyfr, minusa i 3 cyfr. Jeśli
|
||||
napis nie spełnia podanych warunków, należy wypisać "<NONE>".
|
||||
|
||||
For each string, extract the postal code of a city (2 first digits).
|
||||
If the string is not a postal code, you should print "<NONE>".
|
||||
We assume that the postal code consists of 2 digits, minus character, and 3 digits.
|
||||
If the string doesn't fulfill the condition, you should print "<NONE>".
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 2.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 2.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 2/10
|
6
TaskE02/test.exp
Normal file
6
TaskE02/test.exp
Normal file
@ -0,0 +1,6 @@
|
||||
<NONE>
|
||||
<NONE>
|
||||
23
|
||||
<NONE>
|
||||
61
|
||||
<NONE>
|
6
TaskE02/test.in
Normal file
6
TaskE02/test.in
Normal file
@ -0,0 +1,6 @@
|
||||
!@#$%^&
|
||||
0-333
|
||||
23-000
|
||||
61-23
|
||||
61-680
|
||||
BigFoot
|
37
TaskE03/description.txt
Normal file
37
TaskE03/description.txt
Normal file
@ -0,0 +1,37 @@
|
||||
Numer NIP
|
||||
=========
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest numerem NIP zapisanym w
|
||||
formacie xxx-xxx-xx-xx bądź xxx-xx-xx-xxx. Nie trzeba brać pod uwagę sumy
|
||||
kontrolnej.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the string is NIP number written in
|
||||
xxx-xxx-xx-xx bądź xxx-xx-xx-xxx format. You don't need to consider a checksum.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 3.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 3.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 3/10
|
9
TaskE03/run.py
Normal file
9
TaskE03/run.py
Normal file
@ -0,0 +1,9 @@
|
||||
import sys
|
||||
import re
|
||||
|
||||
for line in sys.stdin:
|
||||
numbers = re.fullmatch(r"(\d{3}-\d{3}-\d{2}-\d{2})|(\d{3}-\d{2}-\d{2}-\d{3})", line.replace("\n", ""), flags=re.IGNORECASE)
|
||||
if numbers:
|
||||
print("yes")
|
||||
else:
|
||||
print("no")
|
5
TaskE03/test.exp
Normal file
5
TaskE03/test.exp
Normal file
@ -0,0 +1,5 @@
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
5
TaskE03/test.in
Normal file
5
TaskE03/test.in
Normal file
@ -0,0 +1,5 @@
|
||||
000-00-00-000
|
||||
345-45-12-334
|
||||
345-455-12-34
|
||||
345-455-12-349
|
||||
3454551234
|
5
TaskE03/test.out
Normal file
5
TaskE03/test.out
Normal file
@ -0,0 +1,5 @@
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
37
TaskE04/description.txt
Normal file
37
TaskE04/description.txt
Normal file
@ -0,0 +1,37 @@
|
||||
Telefon filmowy
|
||||
===============
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest 9-cyfrowym numerem
|
||||
telefonu zapisanym w formacie "NNN-NNN-NNN" badź "NNN NNN NNN" zaczynającym
|
||||
sie od kombinacji "555".
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, you should check, if the string is a 9-digit phone number
|
||||
written in "NNN-NNN-NNN" or "NNN NNN NNN" format, which starts with "555".
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 4.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 4.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 4/10
|
12
TaskE04/test.exp
Normal file
12
TaskE04/test.exp
Normal file
@ -0,0 +1,12 @@
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
12
TaskE04/test.in
Normal file
12
TaskE04/test.in
Normal file
@ -0,0 +1,12 @@
|
||||
055-555-555
|
||||
505-324-555
|
||||
551-233-455
|
||||
555 000 000
|
||||
555 000-000
|
||||
555 123 456
|
||||
555-000 000
|
||||
555-000-000
|
||||
555-123-456
|
||||
556 345 667
|
||||
556 345 6675
|
||||
556 345-667
|
38
TaskE05/description.txt
Normal file
38
TaskE05/description.txt
Normal file
@ -0,0 +1,38 @@
|
||||
Akronim
|
||||
=======
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest akronimem (ciągiem co
|
||||
najmniej dwóch i co najwyżej pięciu wielkich liter. Dodatkowo należy
|
||||
uwzględnić akronimy "PCMCIA" i "WYSIWYG".
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the string is an acronym (sequence
|
||||
of at least 2 and at most 5 capital letters.
|
||||
Additionally, you should include acronyms "PCMCIA" i "WYSIWYG".
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 5.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 5.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 5/10
|
11
TaskE05/test.exp
Normal file
11
TaskE05/test.exp
Normal file
@ -0,0 +1,11 @@
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
11
TaskE05/test.in
Normal file
11
TaskE05/test.in
Normal file
@ -0,0 +1,11 @@
|
||||
AAAAAA
|
||||
ABCDE
|
||||
ATX
|
||||
P
|
||||
PC
|
||||
PCMCIA
|
||||
PCMCIB
|
||||
Pc
|
||||
WYSIWYA
|
||||
WYSIWYG
|
||||
ZZZZ
|
35
TaskE06/description.txt
Normal file
35
TaskE06/description.txt
Normal file
@ -0,0 +1,35 @@
|
||||
Liczba pięcio bądź sześciocyfrowa
|
||||
=================================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis reprezentuje liczbę pięcio-
|
||||
bądź sześciocyfrową. Liczba nie powinna zawierać zer nieznaczących.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string represents
|
||||
5 or 6 digits number. The number should not contain leading zeros.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 6.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 6.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 6/10
|
10
TaskE06/test.exp
Normal file
10
TaskE06/test.exp
Normal file
@ -0,0 +1,10 @@
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
10
TaskE06/test.in
Normal file
10
TaskE06/test.in
Normal file
@ -0,0 +1,10 @@
|
||||
012345
|
||||
0123456
|
||||
10000
|
||||
100001
|
||||
12345
|
||||
123456
|
||||
333333333333
|
||||
9999
|
||||
99999
|
||||
999999
|
35
TaskE07/description.txt
Normal file
35
TaskE07/description.txt
Normal file
@ -0,0 +1,35 @@
|
||||
Gwiazdek
|
||||
========
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis składa się z samych gwiazdek
|
||||
(co najmniej jednej).
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string consists of only asterisks (at least one).
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 7.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 7.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 7/10
|
7
TaskE07/test.exp
Normal file
7
TaskE07/test.exp
Normal file
@ -0,0 +1,7 @@
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
7
TaskE07/test.in
Normal file
7
TaskE07/test.in
Normal file
@ -0,0 +1,7 @@
|
||||
*
|
||||
**
|
||||
***
|
||||
***********
|
||||
*a
|
||||
+
|
||||
a*
|
38
TaskE08/description.txt
Normal file
38
TaskE08/description.txt
Normal file
@ -0,0 +1,38 @@
|
||||
Chichot
|
||||
=======
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest chichotem tzn. "hi"
|
||||
powtórzonym przynajmniej 2 razy, po czym następuje opcjonalny ciąg
|
||||
wykrzykników.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string consists of a sequence
|
||||
"hi" repeated at least 2 times followed by optional sequences of
|
||||
exclamation marks.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 8.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 8.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 8/10
|
10
TaskE08/test.exp
Normal file
10
TaskE08/test.exp
Normal file
@ -0,0 +1,10 @@
|
||||
no
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
10
TaskE08/test.in
Normal file
10
TaskE08/test.in
Normal file
@ -0,0 +1,10 @@
|
||||
!!!!!
|
||||
!hi
|
||||
hi
|
||||
hi!!!
|
||||
hihi
|
||||
hihi!!!!!!!!!
|
||||
hihihi
|
||||
hihihi!
|
||||
hihihihihihihihi
|
||||
ih!
|
36
TaskE09/description.txt
Normal file
36
TaskE09/description.txt
Normal file
@ -0,0 +1,36 @@
|
||||
Wielka litera i dwie cyfry w środku
|
||||
===================================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis zawiera podciąg składający
|
||||
się z wielkiej litery i dwóch cyfr.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string contains a substring
|
||||
consisting of the capital letter and two digits.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 10 z resztą 9.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 10 is 9.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 9/10
|
9
TaskE09/test.exp
Normal file
9
TaskE09/test.exp
Normal file
@ -0,0 +1,9 @@
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
9
TaskE09/test.in
Normal file
9
TaskE09/test.in
Normal file
@ -0,0 +1,9 @@
|
||||
G3923d
|
||||
G9
|
||||
Ha3a5
|
||||
Z00
|
||||
Z0x0
|
||||
az33a
|
||||
dsdg34
|
||||
hahaA39dsdsd
|
||||
sssssssssssU23
|
37
TaskE10/description.txt
Normal file
37
TaskE10/description.txt
Normal file
@ -0,0 +1,37 @@
|
||||
Podzielność liczby wystąpień
|
||||
============================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy zadany napis jest potęgą liczby 2
|
||||
zapisaną w systemie szesnastkowym. Liczba nie powinna zawierać zer
|
||||
nieznaczących.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string is a power of 2 written in the hexadecimal system.
|
||||
The number should not contain leading zeros.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 10.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 10.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 10/27
|
12
TaskE10/test.exp
Normal file
12
TaskE10/test.exp
Normal file
@ -0,0 +1,12 @@
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
12
TaskE10/test.in
Normal file
12
TaskE10/test.in
Normal file
@ -0,0 +1,12 @@
|
||||
0
|
||||
0008000
|
||||
08000
|
||||
1
|
||||
2
|
||||
400
|
||||
400 400
|
||||
4020
|
||||
8000
|
||||
800000
|
||||
8888
|
||||
A0
|
40
TaskE11/description.txt
Normal file
40
TaskE11/description.txt
Normal file
@ -0,0 +1,40 @@
|
||||
Podzielność przez cztery
|
||||
========================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy zadany napis - zapisany
|
||||
dziesiętnie bądź szesnastkowo jest podzielny przez 4. Zapis szesnastkowy
|
||||
jest sygnalizowany przez prefiks "0x", cyfry szesnastkowe zapisywane jako
|
||||
wielkie litery. Liczba nie powinna zawierać zer nieznaczących.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string (written in hexadecimal
|
||||
or decimal system) is divisible by 4. A hexadecimal number
|
||||
is prefixed by "0x" and hexadecimal letters are capital letters.
|
||||
The number should not contain leading zeros.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 11.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 11.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 11/27
|
17
TaskE11/test.exp
Normal file
17
TaskE11/test.exp
Normal file
@ -0,0 +1,17 @@
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
17
TaskE11/test.in
Normal file
17
TaskE11/test.in
Normal file
@ -0,0 +1,17 @@
|
||||
0
|
||||
088
|
||||
0x0
|
||||
0x00B
|
||||
0x00C
|
||||
0x2
|
||||
0x34
|
||||
0xB
|
||||
0xC
|
||||
1
|
||||
100000
|
||||
16
|
||||
34
|
||||
34536
|
||||
4
|
||||
4 4
|
||||
88
|
38
TaskE12/description.txt
Normal file
38
TaskE12/description.txt
Normal file
@ -0,0 +1,38 @@
|
||||
Nie koński łeb
|
||||
==============
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest numerem telefonu
|
||||
zapisanym w formacie N-NNN-NNNNN-NNNN (N to dowolna cyfra), innym niż numer
|
||||
telefonu 1-500-56773-4323.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the given string is a phone number
|
||||
wirtten in N-NNN-NNNNN-NNNN format (N is any digit), other than
|
||||
1-500-56773-4323 phone number.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 12.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 12.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 12/27
|
6
TaskE12/test.exp
Normal file
6
TaskE12/test.exp
Normal file
@ -0,0 +1,6 @@
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
6
TaskE12/test.in
Normal file
6
TaskE12/test.in
Normal file
@ -0,0 +1,6 @@
|
||||
09-333-56773-4324
|
||||
1-500-00000-0000
|
||||
1-500-55773-4323
|
||||
1-500-56773-4323
|
||||
1-500-56773-4324
|
||||
9-333-56773-4324
|
42
TaskE13/description.txt
Normal file
42
TaskE13/description.txt
Normal file
@ -0,0 +1,42 @@
|
||||
Nie koński łeb 2
|
||||
================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest napisem złożonym z
|
||||
ciągu 5 wielkich liter i 4 wielkich liter oddzielonych spacją, które
|
||||
wstukane na standardowym telefonie dadzą inny numer niż uzyskane przez
|
||||
wstukanie napisu "HORSE HEAD". Zakładamy standardowe mapowanie liter na
|
||||
cyfry w telefonie ("ABC" - 2, "DEF" - 3 itd.)
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the given string consists of
|
||||
5 capital letters and 4 capital letter separated by space,
|
||||
which written in old cellphone keyboard shows another number than typing
|
||||
"HORSE HEAD". We assume standard old cellphone keyboard mapping
|
||||
("ABC" - 2, "DEF" - 3 etc.)
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 13.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 13.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 13/27
|
9
TaskE13/test.exp
Normal file
9
TaskE13/test.exp
Normal file
@ -0,0 +1,9 @@
|
||||
no
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
9
TaskE13/test.in
Normal file
9
TaskE13/test.in
Normal file
@ -0,0 +1,9 @@
|
||||
0MORSE HEAD
|
||||
AAAAA BBBB
|
||||
AAAAAA BBBB
|
||||
GOSRE IDAD
|
||||
HORSE HEAD
|
||||
MORSE HEAD
|
||||
MORSEHEAD
|
||||
ZOSRE IDAD
|
||||
morse head
|
38
TaskE14/description.txt
Normal file
38
TaskE14/description.txt
Normal file
@ -0,0 +1,38 @@
|
||||
Nie 555
|
||||
=======
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest 9-cyfrowym numerem
|
||||
telefonu zapisanym w formacie "NNN-NNN-NNN" badź "NNN NNN NNN"
|
||||
niezaczynającym sie od kombinacji "555".
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string check, if the given number is 9 digit phone
|
||||
number written in "NNN-NNN-NNN" or "NNN NNN NNN" format,
|
||||
which does not start with "555"
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 14.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 14.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 14/27
|
7
TaskE14/test.exp
Normal file
7
TaskE14/test.exp
Normal file
@ -0,0 +1,7 @@
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
no
|
7
TaskE14/test.in
Normal file
7
TaskE14/test.in
Normal file
@ -0,0 +1,7 @@
|
||||
055-555-555
|
||||
505-324-555
|
||||
551-233-455
|
||||
555-123-456
|
||||
556 345 667
|
||||
556 345 6675
|
||||
556 345-667
|
40
TaskE15/description.txt
Normal file
40
TaskE15/description.txt
Normal file
@ -0,0 +1,40 @@
|
||||
Wynik-zwycięstwo
|
||||
================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis reprezentuje wynik meczu
|
||||
piłkarskiego (dwie liczby oddzielone dwukropkiem bądź minusem), przy czym
|
||||
pierwsza liczba jest większa od drugiej. Maksymalna liczba bramek
|
||||
zwycięskiej drużyny wynosi 11.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string stands for
|
||||
a soccer match result (two numbers separated by colon or minus character).
|
||||
The first number should be greater than the second.
|
||||
The maximum number of leading team is 11.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 15.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 15.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 15/27
|
12
TaskE15/test.exp
Normal file
12
TaskE15/test.exp
Normal file
@ -0,0 +1,12 @@
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
12
TaskE15/test.in
Normal file
12
TaskE15/test.in
Normal file
@ -0,0 +1,12 @@
|
||||
10-10
|
||||
10-9
|
||||
11-10
|
||||
11-11
|
||||
12:0
|
||||
2:1
|
||||
2:5
|
||||
3-1
|
||||
5:2
|
||||
5:2 3:1
|
||||
5:21
|
||||
7-0
|
41
TaskE16/description.txt
Normal file
41
TaskE16/description.txt
Normal file
@ -0,0 +1,41 @@
|
||||
Równanie
|
||||
========
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis reprezentuje proste równanie
|
||||
typu "A @ B = C", gdzie w miejscu A, B, C mogą pojawić się liczby dodatnie
|
||||
(bez nieznaczących zer) bądź zmienna "x" (zmienna "x" - dokładnie jeden raz
|
||||
w całym równaniu. '@' którąś z operacji - '+', '-', '*', '/'. Operatory
|
||||
arytmetyczne i równości mogą być otoczone przez spacje.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string stands for "A @ B = C" equation,
|
||||
where A, B, C are positive integers (no leading zeros) or "x" variable (only
|
||||
one "x" in the queation). "@" is of on '+', '-', '*', '/' operators.
|
||||
Arithmetic operators may be separated by spaces.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 16.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 16.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 16/27
|
8
TaskE16/test.exp
Normal file
8
TaskE16/test.exp
Normal file
@ -0,0 +1,8 @@
|
||||
yes
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
8
TaskE16/test.in
Normal file
8
TaskE16/test.in
Normal file
@ -0,0 +1,8 @@
|
||||
14 / x = 2
|
||||
2 + 2 + x = 8
|
||||
2 + 2 = 4
|
||||
2 + x = 4
|
||||
23 - x=13
|
||||
5+2=x
|
||||
x + x = 16
|
||||
x* 343=90900
|
39
TaskE17/description.txt
Normal file
39
TaskE17/description.txt
Normal file
@ -0,0 +1,39 @@
|
||||
Formy czasownika
|
||||
================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest formą czasownika
|
||||
zakończonego na "ować". Należy uwzględnić wszystkie formy z wyjątkiem
|
||||
imiesłowów. Napis musi być ciągiem małych liter (włącznie z polskimi
|
||||
literami).
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the string is a verb ending with "ować".
|
||||
You should include all forms, but a participle. The string should
|
||||
be a sequence of lower case letters (including polish letters)
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 17.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 17.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 17/27
|
10
TaskE17/test.exp
Normal file
10
TaskE17/test.exp
Normal file
@ -0,0 +1,10 @@
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
10
TaskE17/test.in
Normal file
10
TaskE17/test.in
Normal file
@ -0,0 +1,10 @@
|
||||
Abonować
|
||||
abonować
|
||||
abonowaćxxx
|
||||
anonsuje
|
||||
anonsuję
|
||||
modemowałyście
|
||||
prowokowany
|
||||
prowokuj
|
||||
sprowokuje
|
||||
óęererłujemy
|
41
TaskE18/description.txt
Normal file
41
TaskE18/description.txt
Normal file
@ -0,0 +1,41 @@
|
||||
Numer wiersza z Ewangelii
|
||||
=========================
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest oznaczeniem wiersza z
|
||||
Ewangelii (w rodzaju "Mt 17, 3"). Skróty Ewangelii - "Mt", "Mk", "Łk", "J",
|
||||
liczba rozdziałów odpowiednio - 28, 16, 24, 22. Wiersz liczba z zakresu
|
||||
1-99 (nie trzeba sprawdzać czy faktycznie tyle jest w poszczególnych
|
||||
rozdziałach).
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the string is Evangel line number
|
||||
(like "Mt 17, 3"). Evangel abbreviations - "Mt", "Mk", "Łk", "J",
|
||||
paragraphs numbers correspondingly 28, 16, 24, 22. Verset name is 1-99.
|
||||
You don't need to check if there are such versets in the real Evangel.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 18.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 18.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 18/27
|
8
TaskE18/test.exp
Normal file
8
TaskE18/test.exp
Normal file
@ -0,0 +1,8 @@
|
||||
yes
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
8
TaskE18/test.in
Normal file
8
TaskE18/test.in
Normal file
@ -0,0 +1,8 @@
|
||||
J 22, 99
|
||||
J 23, 1
|
||||
Mk 16, 9
|
||||
Mk 17, 9
|
||||
Mk 7, 9
|
||||
Mt 1, 1
|
||||
Łk 24, 3
|
||||
Łk 30, 1
|
35
TaskE19/description.txt
Normal file
35
TaskE19/description.txt
Normal file
@ -0,0 +1,35 @@
|
||||
Potęga setki
|
||||
============
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy zadany napis jest potęgą liczby
|
||||
100.
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the given string is the power of 100.
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 19.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 19.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 19/27
|
9
TaskE19/test.exp
Normal file
9
TaskE19/test.exp
Normal file
@ -0,0 +1,9 @@
|
||||
no
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
9
TaskE19/test.in
Normal file
9
TaskE19/test.in
Normal file
@ -0,0 +1,9 @@
|
||||
-100
|
||||
1
|
||||
10
|
||||
100
|
||||
10000
|
||||
1000000
|
||||
1001
|
||||
2000
|
||||
500
|
35
TaskE20/description.txt
Normal file
35
TaskE20/description.txt
Normal file
@ -0,0 +1,35 @@
|
||||
Numer telefonu
|
||||
==============
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy wskazać czy zadany napis jest numerem telefonu.
|
||||
Zakładamy, że numer telefonu składa się z dwóch cyfr opcjonalnie
|
||||
poprzedzonych zerem, po których następuje spacja i 7 cyfr w formacie
|
||||
N-NNN-NNN. Jeśli napis spełnia podane warunki, należy wypisać
|
||||
"yes", w przeciwnym wypadku "no".
|
||||
|
||||
For each string, indicate whether it is a phone number. We assume, that the phone
|
||||
number consists of two digits (optionally prefixed by zero), followed
|
||||
by space and 7 digits in N-NNN-NNN format. If the string fulfills the condition, print "yes", otherwise "no".
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 20.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 20.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 20/27
|
9
TaskE20/run.py
Normal file
9
TaskE20/run.py
Normal file
@ -0,0 +1,9 @@
|
||||
import sys
|
||||
import re
|
||||
|
||||
for line in sys.stdin:
|
||||
numbers = re.match(r'^(0?[0-9]{2}) (\d{1}-\d{3}-\d{3})$', line.replace("\n", ""), flags=re.IGNORECASE)
|
||||
if numbers:
|
||||
print('yes')
|
||||
else:
|
||||
print("no")
|
6
TaskE20/test.exp
Normal file
6
TaskE20/test.exp
Normal file
@ -0,0 +1,6 @@
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
6
TaskE20/test.in
Normal file
6
TaskE20/test.in
Normal file
@ -0,0 +1,6 @@
|
||||
00 0-000-000
|
||||
000 0-000-000
|
||||
0000 0-000-000
|
||||
061 5-555-553
|
||||
61 5-555-553
|
||||
61 5-555-5534
|
6
TaskE20/test.out
Normal file
6
TaskE20/test.out
Normal file
@ -0,0 +1,6 @@
|
||||
yes
|
||||
yes
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
40
TaskE21/description.txt
Normal file
40
TaskE21/description.txt
Normal file
@ -0,0 +1,40 @@
|
||||
Koński łeb
|
||||
==========
|
||||
|
||||
Napisać program, który wczytuje kolejne wiersze ze standardowego
|
||||
wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w
|
||||
jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno
|
||||
użyć negacji jako operacji w danym języku programowania, jeśli da się
|
||||
to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy
|
||||
użyć pojedynczego wyrażenia regularnego.
|
||||
|
||||
Write a program, which loads consecutive lines from standard input
|
||||
and analyze every line (with no newline character). You should
|
||||
use regular expressions to the greatest extent possible (e.g. you
|
||||
can not use negation in the programming language if it is
|
||||
possible to express the same in regular expression). Wherever possible,
|
||||
use one regular expression.
|
||||
|
||||
Dla każdego napisu należy sprawdzić, czy napis jest napisem złożonym z
|
||||
ciągu 5 wielkich liter i 4 wielkich liter oddzielonych spacją, które
|
||||
wstukane na standardowym telefonie dadzą taki sam numer jak przy wstukaniu
|
||||
napisu "HORSE HEAD". Zakładamy standardowe mapowanie liter na cyfry w
|
||||
telefonie ("ABC" - 2, "DEF" - 3 itd.)
|
||||
Jeśli napis spełnia tak określony warunek, należy wypisać na
|
||||
standardowym wyjściu 'yes', w przeciwnym razie — 'no'.
|
||||
|
||||
For each string, check if the string consists of 5 capital letters
|
||||
and 4 lower case letter separated by space, which written on
|
||||
an old cell phone keyboard gives the same number as typing "HORSE HEAD".
|
||||
We assume standard old phone keyboard mapping ("ABC" - 2, "DEF" - 3, etc.)
|
||||
If the string fulfills the condition, you should print 'yes' on the
|
||||
standard output and 'no' otherwise.
|
||||
|
||||
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||
dzieli się przez 27 z resztą 21.
|
||||
|
||||
Attention. The task is for students whose students id remainder of the division by 27 is 21.
|
||||
|
||||
POINTS: 1
|
||||
DEADLINE: 2023-12-10 23:59:59
|
||||
REMAINDER: 21/27
|
9
TaskE21/test.exp
Normal file
9
TaskE21/test.exp
Normal file
@ -0,0 +1,9 @@
|
||||
no
|
||||
no
|
||||
no
|
||||
yes
|
||||
yes
|
||||
no
|
||||
no
|
||||
no
|
||||
no
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user