From d1889005577be004aeb4298128065ed5dd6a0615 Mon Sep 17 00:00:00 2001 From: zimmersandro Date: Wed, 4 Mar 2026 23:04:55 +0100 Subject: [PATCH] chore: renamed cipher_helper.py in vigenere_chpher_helper. Next kata will be ceasar_cipher_helper --- ...elper.py => kata_vigenere_cipher_helper.py | 0 src/codewars/kata_vigenere_cipher_helper.py | 40 +++++++++++++++++++ ...lper.py => test_vigenere_cipher_helper.py} | 0 3 files changed, 40 insertions(+) rename src/codewars/kata_cipher_helper.py => kata_vigenere_cipher_helper.py (100%) create mode 100644 src/codewars/kata_vigenere_cipher_helper.py rename tests/codewars/{test_cipher_helper.py => test_vigenere_cipher_helper.py} (100%) diff --git a/src/codewars/kata_cipher_helper.py b/kata_vigenere_cipher_helper.py similarity index 100% rename from src/codewars/kata_cipher_helper.py rename to kata_vigenere_cipher_helper.py diff --git a/src/codewars/kata_vigenere_cipher_helper.py b/src/codewars/kata_vigenere_cipher_helper.py new file mode 100644 index 0000000..3d53b5d --- /dev/null +++ b/src/codewars/kata_vigenere_cipher_helper.py @@ -0,0 +1,40 @@ +class VigenereCipher(object): + def __init__(self, key, alphabet): + self.key = key + self.alphabet = alphabet + + def encode(self, text): + encoded = [] + idx_key = 0 + + for char in text: + if char in self.alphabet: + text_pos = self.alphabet.index(char) + key_char = self.key[idx_key % len(self.key)] + key_pos = self.alphabet.index(key_char) + + pos = (text_pos + key_pos) % len(self.alphabet) + encoded.append(self.alphabet[pos]) + else: + encoded.append(char) + idx_key += 1 + + return "".join(encoded) + + def decode(self, text): + decoded = [] + idx_key = 0 + + for char in text: + if char in self.alphabet: + text_pos = self.alphabet.index(char) + key_char = self.key[idx_key % len(self.key)] + key_pos = self.alphabet.index(key_char) + + pos = (text_pos - key_pos) % len(self.alphabet) + decoded.append(self.alphabet[pos]) + else: + decoded.append(char) + idx_key += 1 + + return "".join(decoded) diff --git a/tests/codewars/test_cipher_helper.py b/tests/codewars/test_vigenere_cipher_helper.py similarity index 100% rename from tests/codewars/test_cipher_helper.py rename to tests/codewars/test_vigenere_cipher_helper.py