From 473022d019f8093cde3ee9fdb19d0cbaa6fdfb66 Mon Sep 17 00:00:00 2001 From: leart-ramushi Date: Wed, 4 Mar 2026 17:04:40 +0100 Subject: [PATCH] Abgabe Aufgabe 2 --- src/codewars/vigenere_cipher_helper.py | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/codewars/vigenere_cipher_helper.py diff --git a/src/codewars/vigenere_cipher_helper.py b/src/codewars/vigenere_cipher_helper.py new file mode 100644 index 0000000..d752b3c --- /dev/null +++ b/src/codewars/vigenere_cipher_helper.py @@ -0,0 +1,51 @@ +# Abgabe - Vigenère Cipher Helper +# Link dazu: https://www.codewars.com/kata/52d1bd3694d26f8d6e0000d3 +# Leart Ramushi + + +class VigenereCipher(object): + def __init__(self, key, alphabet): + self.key = key + self.alphabet = alphabet + self.alp_len = len(alphabet) + pass + + def encode(self, text): + result = "" + key_pos = 0 + print(text) + + for pos in range(len(text)): + currrent_char = text[pos] + if currrent_char in self.alphabet: + key_char = self.key[key_pos % len(self.key)] + # print(currrent_char, " - ", key_char) + text_index = self.alphabet.index(currrent_char) + key_index = self.alphabet.index(key_char) + # print(text_index, " - ", key_index) + update_index = (text_index + key_index) % len(self.alphabet) + result += self.alphabet[update_index] + else: + result += currrent_char + key_pos += 1 + print(result) + return result + + def decode(self, text): + result = "" + key_pos = 0 + + for pos in range(len(text)): + currrent_char = text[pos] + if currrent_char in self.alphabet: + key_char = self.key[key_pos % len(self.key)] + # print(currrent_char, " - ", key_char) + text_index = self.alphabet.index(currrent_char) + key_index = self.alphabet.index(key_char) + # print(text_index, " - ", key_index) + update_index = (text_index - key_index) % len(self.alphabet) + result += self.alphabet[update_index] + else: + result += currrent_char + key_pos += 1 + return result