1
1
mirror of https://github.com/theoludwig/programming-challenges.git synced 2025-05-18 12:02:53 +02:00

refactor: usage of built-in type hinting in Python solutions

This commit is contained in:
Divlo
2022-04-24 20:27:51 +02:00
parent 64c5d41358
commit 34644bd333
27 changed files with 142 additions and 116 deletions

View File

@ -1,8 +1,7 @@
from typing import List
import sys
def bubble_sort(numbersInput: List[int]) -> List[int]:
def bubble_sort(numbersInput: list[int]) -> list[int]:
numbers = list(numbersInput)
length = len(numbers)
for index_1 in range(length):
@ -14,7 +13,7 @@ def bubble_sort(numbersInput: List[int]) -> List[int]:
return numbers
numbers: List[int] = []
numbers: list[int] = []
for value in sys.stdin:
numbers.append(int(value.rstrip('\n')))

View File

@ -1,7 +1,6 @@
from typing import List
import sys
numbers: List[int] = []
numbers: list[int] = []
for value in sys.stdin:
numbers.append(int(value.rstrip('\n')))

View File

@ -1,8 +1,7 @@
from typing import List
import sys
def insertion_sort(numbersInput: List[int]) -> List[int]:
def insertion_sort(numbersInput: list[int]) -> list[int]:
numbers = list(numbersInput)
for index_1 in range(1, len(numbers)):
current = numbers[index_1]
@ -14,7 +13,7 @@ def insertion_sort(numbersInput: List[int]) -> List[int]:
return numbers
numbers: List[int] = []
numbers: list[int] = []
for value in sys.stdin:
numbers.append(int(value.rstrip('\n')))

View File

@ -1,20 +1,22 @@
from typing import List, Any
from typing import TypeVar
import sys
T = TypeVar('T')
def divide_list(values: List[Any]) -> List[Any]:
def divide_list(values: list[T]) -> tuple[list[T], list[T]]:
middle = len(values) // 2
left = values[middle:]
right = values[:middle]
return [left, right]
return (left, right)
def merge(numbers_1: List[int], numbers_2: List[int]) -> List[int]:
def merge(numbers_1: list[int], numbers_2: list[int]) -> list[int]:
length_numbers_1 = len(numbers_1)
length_numbers_2 = len(numbers_2)
index_numbers_1 = 0
index_numbers_2 = 0
result: List[int] = []
result: list[int] = []
while index_numbers_1 < length_numbers_1 and index_numbers_2 < length_numbers_2:
if numbers_1[index_numbers_1] < numbers_2[index_numbers_2]:
result.append(numbers_1[index_numbers_1])
@ -29,7 +31,7 @@ def merge(numbers_1: List[int], numbers_2: List[int]) -> List[int]:
return result
def merge_sort(numbers: List[int]) -> List[int]:
def merge_sort(numbers: list[int]) -> list[int]:
if len(numbers) <= 1:
return numbers
left, right = divide_list(numbers)
@ -37,7 +39,7 @@ def merge_sort(numbers: List[int]) -> List[int]:
return merge(left, right)
numbers: List[int] = []
numbers: list[int] = []
for value in sys.stdin:
numbers.append(int(value.rstrip('\n')))