Compare commits

...

6 Commits

Author SHA1 Message Date
b74a428c2b Merge pull request 'aufgabe3_codewars' (#4) from aufgabe3_codewars into main
Reviewed-on: #4

Sieht solide aus.

Kleiner Tip zu den Kommentaren: Wenn Du die Kommentare mit """ in die Methoden (Funktionen) selbst rein schreibst, hast Du nachher sogar die Möglichkeit 'gratis' eine API-Dokumentation zu erhalten (z.B. sphinx). Auch wird dieser Text dann angezeigt, wenn Du help auf eine Funktion/Methode aufrufst. Wenn Du in # oberhalb der Funktion/Methode kommentierst, hast Du dise Möglichkeit nicht.
2026-03-13 10:17:18 +01:00
leart-ramushi
65a4c79916 Link Korrektur im Kommentar 2026-03-11 15:02:02 +01:00
leart-ramushi
065447534c Abgabe Aufgabe 3 2026-03-11 14:58:57 +01:00
43cb9a9b56 Merge pull request 'aufgabe2_codewars' (#3) from aufgabe2_codewars into main
Reviewed-on: #3

Die Vignère-Chiffre ist nicht ganz einfach, tiptop. Man könnte den Code noch vereinfachen, weil sich encode und decode nur an ganz wenigen Stellen unterscheiden (+ vs. -), aber das passt gut so.
2026-03-05 19:27:16 +01:00
430767c1e4 Merge pull request 'aufgabe1_codewars' (#2) from aufgabe1_codewars into main
Reviewed-on: #2

tiptop, alles gut. Formal sogar mit Label. Bei vielen Commits auf einem Branch erleichert uns das sehr, welcher Code wirklich gilt.
2026-03-05 19:22:55 +01:00
leart-ramushi
473022d019 Abgabe Aufgabe 2 2026-03-04 17:04:40 +01:00
2 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,43 @@
# Abgabe - PaginationHelper Aufgabe von Codewars
# Link dazu: https://www.codewars.com/kata/515bb423de843ea99400000a
# Leart Ramushi
# TODO: complete this class
import math
class PaginationHelper:
# The constructor takes in an array of items and an integer indicating
# how many items fit within a single page
def __init__(self, collection, items_per_page):
self.collection = collection
self.items_per_page = items_per_page
# returns the number of items within the entire collection
def item_count(self):
return len(self.collection)
# returns the number of pages
def page_count(self):
return math.ceil(len(self.collection) / self.items_per_page)
# returns the number of items on the given page. page_index is zero based
# this method should return -1 for page_index values that are out of range
def page_item_count(self, page_index):
if page_index < 0 or page_index >= self.page_count():
return -1
if page_index == self.page_count() - 1:
rest = len(self.collection) % self.items_per_page
if rest == 0:
return self.items_per_page
else:
return rest
return self.items_per_page
# determines what page an item at the given index is on. Zero based indexes.
# this method should return -1 for item_index values that are out of range
def page_index(self, item_index):
if item_index < 0 or item_index >= len(self.collection):
return -1
return item_index // self.items_per_page

View File

@ -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