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:
@ -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')))
|
||||
|
||||
|
@ -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')))
|
||||
|
||||
|
@ -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')))
|
||||
|
||||
|
@ -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')))
|
||||
|
||||
|
Reference in New Issue
Block a user