Add Task-G
This commit is contained in:
parent
013cf7f822
commit
322c4561dd
21
TaskF00/description.txt
Normal file
21
TaskF00/description.txt
Normal file
@ -0,0 +1,21 @@
|
||||
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.
|
||||
|
||||
Write a program to substitute all 4-digits string to 4-characters string.
|
||||
In the substituted string "0" should change to "a", "1" should change to "b", "2" should change to "c", etc.
|
||||
E.g. "1162" should change to "bbgc".
|
||||
In this task digit means [0-9] class.
|
||||
|
||||
POINTS: 2
|
||||
DEADLINE: 2024-01-07 23:59:59
|
50000
TaskF00/polish_wiki_excerpt.exp
Normal file
50000
TaskF00/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
50000
TaskF00/polish_wiki_excerpt.in.txt
Normal file
50000
TaskF00/polish_wiki_excerpt.in.txt
Normal file
File diff suppressed because one or more lines are too long
0
TaskF00/run.py
Normal file
0
TaskF00/run.py
Normal file
3
TaskF00/simple.exp
Normal file
3
TaskF00/simple.exp
Normal file
@ -0,0 +1,3 @@
|
||||
dece 34 dfd gfd 5
|
||||
f33sdfsdbcdedsfsdf
|
||||
3r
|
3
TaskF00/simple.in.txt
Normal file
3
TaskF00/simple.in.txt
Normal file
@ -0,0 +1,3 @@
|
||||
3424 34 dfd gfd 5
|
||||
f33sdfsd1234dsfsdf
|
||||
3r
|
23
TaskG00/description.txt
Normal file
23
TaskG00/description.txt
Normal file
@ -0,0 +1,23 @@
|
||||
Use regular expressions to extract lines containing polish surnames.
|
||||
|
||||
Download list of polish male and female surnames from here:
|
||||
|
||||
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/35279/table?page=1&per_page=20&q=&sort=
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/22817/table?page=1&per_page=20&q=&sort=
|
||||
|
||||
|
||||
Extract lines from stdin containing any of the surname.
|
||||
Look only for surnames in lowercase.
|
||||
The surname does not have to be surrounded by space or any other special characters.
|
||||
Don't search for declined forms of surnames.
|
||||
|
||||
Check either NFA (e.g. re python library) and DFA (google re2) and compare run speed.
|
||||
|
||||
Submit solution based on DFA library.
|
||||
|
||||
NOTE: You could extract the polish surnames list, save it to a file, then commit the file to your repository.
|
||||
NOTE: You may set max_mem to a higher value than the default in re2 library.
|
||||
|
||||
POINTS: 3
|
||||
DEADLINE: 2024-01-27 23:59:59
|
417640
TaskG00/nazwiska.txt
Normal file
417640
TaskG00/nazwiska.txt
Normal file
File diff suppressed because it is too large
Load Diff
44401
TaskG00/polish_wiki_excerpt.exp
Normal file
44401
TaskG00/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
50000
TaskG00/polish_wiki_excerpt.in.txt
Normal file
50000
TaskG00/polish_wiki_excerpt.in.txt
Normal file
File diff suppressed because one or more lines are too long
28
TaskG00/run.py
Normal file
28
TaskG00/run.py
Normal file
@ -0,0 +1,28 @@
|
||||
import re2
|
||||
|
||||
def build_surname_regex(surnames):
|
||||
# Create a regular expression pattern from the list of surnames
|
||||
pattern = r'\b(?:' + '|'.join(surnames) + r')\b'
|
||||
return re2.compile(pattern)
|
||||
|
||||
def main():
|
||||
# Load Polish surnames from the file
|
||||
with open('polish_surnames.txt', 'r', encoding='utf-8') as file:
|
||||
polish_surnames = [line.strip().lower() for line in file]
|
||||
|
||||
# Build a DFA regex pattern from the list of surnames
|
||||
surname_regex = build_surname_regex(polish_surnames)
|
||||
|
||||
while True:
|
||||
try:
|
||||
# Read a line from standard input
|
||||
line = input()
|
||||
|
||||
# Check if the line contains any of the Polish surnames
|
||||
if surname_regex.search(line.lower()):
|
||||
print(line)
|
||||
except EOFError:
|
||||
break
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
8
TaskG04/description.txt
Normal file
8
TaskG04/description.txt
Normal file
@ -0,0 +1,8 @@
|
||||
Na wejściu dostajemy bajty tekstu UTF-8 zapisane w zwykłej postaci tekstu
|
||||
(Zatem obługujemy strumień wejścia z 0 i 1 w postaci tekstowej, a nie strumień bitów).
|
||||
|
||||
Przekonwertuj plik na tekst UTF-8.
|
||||
|
||||
POINTS: 2
|
||||
DEADLINE: 2024-01-21 23:59:59
|
||||
REMAINDER: 0/2
|
50000
TaskG04/polish_wiki_excerpt.exp
Normal file
50000
TaskG04/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
50000
TaskG04/polish_wiki_excerpt.in.txt
Normal file
50000
TaskG04/polish_wiki_excerpt.in.txt
Normal file
File diff suppressed because one or more lines are too long
0
TaskG04/run.py
Normal file
0
TaskG04/run.py
Normal file
1
TaskX02/simple.out
Normal file
1
TaskX02/simple.out
Normal file
@ -0,0 +1 @@
|
||||
3
|
Loading…
Reference in New Issue
Block a user