From 444b5dabbd3d5e21c918ef87182d38d0ae8ce84e Mon Sep 17 00:00:00 2001 From: Franziska Gerold Date: Fri, 6 Mar 2026 13:30:46 +0100 Subject: [PATCH] =?UTF-8?q?new=20file:=20L=C3=B6sung=20Kata=20Caesar=20Cip?= =?UTF-8?q?her=20Helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/caesar_cipher_helper | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/caesar_cipher_helper diff --git a/src/caesar_cipher_helper b/src/caesar_cipher_helper new file mode 100644 index 0000000..2ba5dfb --- /dev/null +++ b/src/caesar_cipher_helper @@ -0,0 +1,39 @@ +""" +Lösung des Katas: Caesar Cipher Helper +Link: https://www.codewars.com/kata/526d42b6526963598d0004db +""" + + +beginning_alphabet = ord("A") +ending_alphabet = ord("Z") + +class CaesarCipher(object): + def __init__(self, offset): + self.offset = offset + + def encode(self, st): + upper = st.upper() + encoded_st = "" + for char in upper: + if beginning_alphabet <= ord(char) <= ending_alphabet: + encoded_char = (ord(char) + self.offset) + if encoded_char > ending_alphabet: + encoded_char -= (ending_alphabet - (beginning_alphabet - 1)) + encoded_st += chr(encoded_char) + else: + encoded_st += char + + return encoded_st + + def decode(self, st): + decoded_st = "" + for char in st: + if beginning_alphabet <= ord(char) <= ending_alphabet: + decoded_char = (ord(char) - self.offset) + if decoded_char < beginning_alphabet: + decoded_char += (ending_alphabet - (beginning_alphabet - 1)) + decoded_st += chr(decoded_char) + else: + decoded_st += char + + return decoded_st