Compare commits

..

4 Commits

Author SHA1 Message Date
Julia Hauer
9805048088 Vigenere final 2026-03-14 15:38:05 +01:00
Julia Hauer
97ed8c35f2 Merge branch 'codewars_is_pangram' 2026-03-14 15:29:48 +01:00
Julia Hauer
f6391d2dc0 Vigenere Variante1: zu viele Loops 2026-03-14 15:08:03 +01:00
Julia Hauer
2dd38ae817 Abgabe 2026-02-26 20:21:02 +01:00
2 changed files with 65 additions and 0 deletions

9
src/is_pangram.py Normal file
View File

@ -0,0 +1,9 @@
def is_pangram(st):
letters_used = []
alphabet = set("abcdefghijklmnopqrstuvwxyz")
for letter in st.lower():
if letter in alphabet:
letters_used.append(letter)
if set(letters_used) == alphabet:
return True
return False

View File

@ -0,0 +1,56 @@
class VigenereCipher(object):
def __init__(self, key, alphabet):
self.key = key
self.alphabet = alphabet
def encode(self, text):
len_text = len(text)
len_key = len(self.key)
if len_key < len_text:
new_key = (
self.key * (len_text // len_key) + self.key[: (len_text % len_key)]
)
else:
new_key = self.key[:len_text]
new_text = []
for l_text, l_key in zip(text, new_key):
if l_text in self.alphabet:
if l_key in self.alphabet:
new_pos = (
self.alphabet.index(l_text) + self.alphabet.index(l_key)
) % len(self.alphabet)
else:
new_pos = self.alphabet.index(l_text)
new_text.append(self.alphabet[new_pos])
else:
new_text.append(l_text)
return "".join(new_text)
def decode(self, text):
len_text = len(text)
len_key = len(self.key)
if len_key < len_text:
new_key = (
self.key * (len_text // len_key) + self.key[: (len_text % len_key)]
)
else:
new_key = self.key[:len_text]
new_text = []
for l_text, l_key in zip(text, new_key):
if l_text in self.alphabet:
if l_key in self.alphabet:
new_pos = (
self.alphabet.index(l_text) - self.alphabet.index(l_key)
) % len(self.alphabet)
else:
new_pos = self.alphabet.index(l_text)
new_text.append(self.alphabet[new_pos])
else:
new_text.append(l_text)
return "".join(new_text)