From d1227bcbae46f4f1ddb977ca8bd5cb377e8eecd8 Mon Sep 17 00:00:00 2001 From: RADICALOVICH Date: Sun, 12 Mar 2023 20:42:08 +0300 Subject: [PATCH 1/3] DZ1 by telegram: @radicalovich --- DZ1/.DS_Store | Bin 0 -> 6148 bytes DZ1/task1.py | 3 +++ DZ1/task2.py | 4 ++++ DZ1/task3.py | 3 +++ DZ1/task4.py | 7 +++++++ DZ1/task5.py | 6 ++++++ 6 files changed, 23 insertions(+) create mode 100644 DZ1/.DS_Store create mode 100644 DZ1/task1.py create mode 100644 DZ1/task2.py create mode 100644 DZ1/task3.py create mode 100644 DZ1/task4.py create mode 100644 DZ1/task5.py diff --git a/DZ1/.DS_Store b/DZ1/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Date: Sun, 19 Mar 2023 17:59:13 +0300 Subject: [PATCH 2/3] edit task2 and task5 --- DZ1/task2.py | 3 ++- DZ1/task5.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/DZ1/task2.py b/DZ1/task2.py index 6fa6cf8..0f54d57 100644 --- a/DZ1/task2.py +++ b/DZ1/task2.py @@ -1,4 +1,5 @@ text = input() while True: rule = input() - print(text.replace(rule[0],rule[3])) \ No newline at end of file + array = rule.split('->') + print(text.replace(array[0],array[1])) diff --git a/DZ1/task5.py b/DZ1/task5.py index 35edde4..f1f4eb2 100644 --- a/DZ1/task5.py +++ b/DZ1/task5.py @@ -1,6 +1,7 @@ text = input().replace(' ','') shift = int(input()) result = '' +97 - 122 for letter in text: - result += chr((ord(letter)+shift) % 122) -print(result) \ No newline at end of file + result += chr((ord(letter)+(shift % 26)) % 122) +print(result) From d03af8822ffc5ed7b59a3a62e229ffb9aa88250d Mon Sep 17 00:00:00 2001 From: RADICALOVICH Date: Tue, 28 Mar 2023 21:45:22 +0300 Subject: [PATCH 3/3] DZ2 done --- archive.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 archive.py diff --git a/archive.py b/archive.py new file mode 100644 index 0000000..ca77d01 --- /dev/null +++ b/archive.py @@ -0,0 +1,33 @@ +import math +import sys + +if not (2 <= len(sys.argv) <= 3): + print('Usage: python', sys.argv[0], 'input_file') + exit(-1) + +with open(sys.argv[1],'rb') as file: + data = file.read() + +outpath = sys.argv[2] if len(sys.argv) == 3 else sys.argv[1] + '.unlzw' +dictionary = {i: (i,) for i in range(256)} +sequence = list() +i = 0 +with open(outpath, 'wb') as file: + while i < len(data): + if len(sequence) == 0: + n = len(dictionary) + else: + n = len(dictionary) + 1 + bits = math.ceil(math.log2(n)) + bytes = math.ceil(bits / 8) + slice = data[i:i + bytes] + index = int.from_bytes(slice, 'little') + if index == len(dictionary): + new_sequence = sequence + sequence[-1:] + else: + new_sequence = list(dictionary[index]) + file.write(bytearray(new_sequence)) + dictionary[len(dictionary)] = tuple(sequence + new_sequence[-1:]) + i += bytes + sequence = new_sequence +