mirror of
https://github.com/autistic-symposium/web3-starter-py.git
synced 2025-05-17 14:10:21 -04:00
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
# Examples from the exercise.
|
|
id_list1 = [122, 144, 122, 144, 182]
|
|
id_list1_return = [122, 123, 144, 145, 182]
|
|
id_list2 = [13458, 13890, 13890, 144568, 144568]
|
|
id_list2_return = [13458, 13890, 13891, 144568, 144569]
|
|
|
|
# Additional examples,
|
|
id_list3 = []
|
|
id_list4 = [0, 0, 0, 0, 0]
|
|
id_list4_return = [0, 1, 2, 3, 4]
|
|
|
|
|
|
def deduplicate_copilots_ids(id_list):
|
|
''' Take an array of unsorted integer IDs and use sequential
|
|
addition to deduplicate. Returns a sorted list of these IDs.'''
|
|
|
|
aux_dict = {}
|
|
for k in id_list:
|
|
if k in aux_dict.keys():
|
|
aux_dict[k] = aux_dict[k] + 1
|
|
else:
|
|
aux_dict[k] = 1
|
|
|
|
new_list = []
|
|
for key, value in aux_dict.items():
|
|
for i in range(0, value):
|
|
new_list.append(key + i)
|
|
|
|
# Note: sorted() used Timsort algorithm, which is nLog(n)
|
|
return sorted(new_list)
|
|
|
|
|
|
# Tests should pass.
|
|
assert(deduplicate_copilots_ids(id_list1) == id_list1_return)
|
|
assert(deduplicate_copilots_ids(id_list2) == id_list2_return)
|
|
assert(deduplicate_copilots_ids(id_list3) == [])
|
|
assert(deduplicate_copilots_ids(id_list4) == id_list4_return)
|