added type hints, for list and dict

This commit is contained in:
Om Ashishkumar Soni 2023-10-02 08:05:06 +05:30
parent cf2194dcb0
commit 6a0061a28d

View File

@ -33,7 +33,7 @@ class CoordinateCompressor:
the list.
"""
def __init__(self, arr: list) -> None:
def __init__(self, arr: list[int | float | str]) -> None:
"""
Initialize the CoordinateCompressor with a list.
@ -51,8 +51,14 @@ class CoordinateCompressor:
"""
self.coordinate_map = {} # A dictionary to store compressed coordinates
self.reverse_map = [-1] * (len(arr)) # A list to store reverse mapping
self.coordinate_map: dict[
int | float | str, int
] = {} # A dictionary to store compressed coordinates
self.reverse_map: list[int | float | str] = [-1] * (
len(arr)
) # A list to store reverse mapping
self.arr = sorted(arr) # The input list
self.n = len(arr) # The length of the input list
self.compress_coordinates()
@ -78,12 +84,12 @@ class CoordinateCompressor:
self.reverse_map[key] = val
key += 1
def compress(self, original: any) -> int:
def compress(self, original: float | str) -> int:
"""
Compress a single value.
Args:
original (any) : The value to compress.
original (int | float | str) : The value to compress.
Returns:
int: The compressed integer, or -1 if not found in the original list.
@ -98,7 +104,7 @@ class CoordinateCompressor:
"""
return self.coordinate_map.get(original, -1)
def decompress(self, num: int) -> any:
def decompress(self, num: int) -> int | float | str:
"""
Decompress a single integer.
@ -106,7 +112,7 @@ class CoordinateCompressor:
num (int): The compressed integer to decompress.
Returns:
original value (any) : The original value.
original value (int | float | str) : The original value.
>>> arr = [100, 10, 52, 83]
>>> cc = CoordinateCompressor(arr)
@ -124,10 +130,10 @@ if __name__ == "__main__":
testmod()
arr = [100, 10, 52, 83]
arr: list[int | float | str] = [100, 10, 52, 83]
cc = CoordinateCompressor(arr)
compressed = [0] * len(arr)
decompressed = [0] * len(arr)
compressed: list[int] = [0] * len(arr)
decompressed: list[int | float | str] = [0] * len(arr)
for i, original in enumerate(arr):
compressed[i] = cc.compress(original)