codewars snail #1
18
.pre-commit-config.yaml
Normal file
18
.pre-commit-config.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.5.0
|
||||||
|
hooks:
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-added-large-files
|
||||||
|
|
||||||
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
|
rev: v0.3.0
|
||||||
|
hooks:
|
||||||
|
- id: ruff # Linting
|
||||||
|
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: stable
|
||||||
|
hooks:
|
||||||
|
- id: black # formatting
|
||||||
42
Codewars/Sum Strings as Numbers.py
Normal file
42
Codewars/Sum Strings as Numbers.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#Kata https://www.codewars.com/kata/5324945e2ece5e1f32000370/train/python
|
||||||
|
|
||||||
|
def sum_strings(x, y):
|
||||||
|
new_x = x[::-1]
|
||||||
|
new_y = y[::-1]
|
||||||
|
res = []
|
||||||
|
carry = 0
|
||||||
|
|
||||||
|
# Schleife
|
||||||
|
""" Mittels i über die zahlen iterieren
|
||||||
|
checken ob i bei beiden zahlen die länge hat, ansonsten mittels 0 füllen"""
|
||||||
|
for i in range(max(len(new_x), len(new_y))):
|
||||||
|
if i < len(new_x):
|
||||||
|
digit_x = int(new_x[i])
|
||||||
|
else:
|
||||||
|
digit_x = 0
|
||||||
|
if i < len(new_y):
|
||||||
|
digit_y = int(new_y[i])
|
||||||
|
else:
|
||||||
|
digit_y = 0
|
||||||
|
|
||||||
|
|
||||||
|
# Berechne die Summe
|
||||||
|
""" carry wird für zahlen grösser 10 benutzt, damit es eine Zeile weiter gehen kann"""
|
||||||
|
total = digit_x + digit_y + carry
|
||||||
|
|
||||||
|
|
||||||
|
# Berechne den neuen carry und die Ziffer für das Ergebnis
|
||||||
|
"""carry berechnen, also was ist über 10.
|
||||||
|
mittels % wird nur der rest, also das unter 10 angehängt"""
|
||||||
|
carry = total // 10
|
||||||
|
res.append(str(total%10))
|
||||||
|
|
||||||
|
# Falls carry noch vorhanden ist
|
||||||
|
"""nach berechnung von x und y und carry noch übrig ist, wird dieses der liste angehängt"""
|
||||||
|
if carry > 0:
|
||||||
|
res.append(str(carry))
|
||||||
|
|
||||||
|
"""mittels join alles zusammen hängen und die zahlen reihenfolge wieder drehen, damit sie richtig herum stehen
|
||||||
|
mittels strip werden die angehängten null herausgestirchen, falls x und y ungleich lang sind"""
|
||||||
|
final_result = "".join(res[::-1])
|
||||||
|
return final_result.lstrip('0') or '0'
|
||||||
24
Codewars/kata 4_snail(snail_map).py
Normal file
24
Codewars/kata 4_snail(snail_map).py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
def snail(snail_map):
|
||||||
|
result = []
|
||||||
|
if not snail_map or not snail_map[0]:
|
||||||
|
return result
|
||||||
|
|
||||||
|
while snail_map:
|
||||||
|
result += snail_map.pop(0)
|
||||||
|
|
||||||
|
if snail_map and snail_map[0]:
|
||||||
|
for row in snail_map:
|
||||||
|
result.append(row.pop())
|
||||||
|
|
||||||
|
if snail_map:
|
||||||
|
result += snail_map.pop()[::-1]
|
||||||
|
|
||||||
|
if snail_map and snail_map[0]:
|
||||||
|
for row in reversed(snail_map):
|
||||||
|
result.append(row.pop(0))
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
# https://www.codewars.com/kata/521c2db8ddc89b9b7a0000c1/train/python
|
||||||
|
# ich kam nicht selbstständig auf diese lösung. Könntes du mir diese erklären? ich dachte pop löscht.
|
||||||
0
src/__init__.py
Normal file
0
src/__init__.py
Normal file
24
src/kata 4_snail(snail_map).py
Normal file
24
src/kata 4_snail(snail_map).py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
def snail(snail_map):
|
||||||
|
result = []
|
||||||
|
if not snail_map or not snail_map[0]:
|
||||||
|
return result
|
||||||
|
|
||||||
|
while snail_map:
|
||||||
|
result += snail_map.pop(0)
|
||||||
|
|
||||||
|
if snail_map and snail_map[0]:
|
||||||
|
for row in snail_map:
|
||||||
|
result.append(row.pop())
|
||||||
|
|
||||||
|
if snail_map:
|
||||||
|
result += snail_map.pop()[::-1]
|
||||||
|
|
||||||
|
if snail_map and snail_map[0]:
|
||||||
|
for row in reversed(snail_map):
|
||||||
|
result.append(row.pop(0))
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
# https://www.codewars.com/kata/521c2db8ddc89b9b7a0000c1/train/python
|
||||||
|
# ich kam nicht selbstständig auf diese lösung. Könntes du mir diese erklären? ich dachte pop löscht.
|
||||||
10
src/moduleA.py
Normal file
10
src/moduleA.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
def addition(a=1, b=2):
|
||||||
|
return a + b
|
||||||
|
|
||||||
|
|
||||||
|
def f(x: int, y: int) -> int:
|
||||||
|
return x + y
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print(addition(5, 5))
|
||||||
6
tests/test_moduleA.py
Normal file
6
tests/test_moduleA.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
from src.moduleA import addition
|
||||||
|
|
||||||
|
|
||||||
|
def test_a():
|
||||||
|
assert addition() == 3
|
||||||
|
assert addition(5, 5) == 10
|
||||||
Loading…
x
Reference in New Issue
Block a user