Class HashTable
Class HashTable
def __hash(self,key):
my_hash = 0
for letter in key:
my_hash = (my_hash + ord(letter) *23) % len(self.data_map)
return my_hash
def print_table(self):
for i, val in enumerate(self.data_map):
print(i,": ",val)
def set(self,key,value):
index = self.__hash(key)
if self.data_map[index] == None:
self.data_map[index] = []
self.data_map[index].append([key,value])
def get(self,key):
index = self.__hash(key)
if self.data_map(index) is not None:
for i in range(len(self.data_map[index])):
if self.data_map[index][i][0] == key:
return self.data_map[index][i][1]
return None
def keys(self):
all_keys = []
for i in range(len(self.data_map)):
if self.data_map[i] is not None:
for j in range(len(self.data_map[i])):
all_keys.append(self.data_map[i][j][0])
return all_keys
def find_duplicates(lista):
num_counts = {}
for num in lista:
if num in num_counts:
num_counts[num] += 1
else:
num_counts[num] = 1
def first_non_repeating_char(string):
chars_count = {}
def group_anagrams(strings):
anagram_groups = {}
for string in strings:
canonical = "".join(sorted(string))
if canonical in anagram_groups:
anagram_groups[canonical].append(string)
else:
anagram_groups[canonical] = [string]
return list(anagram_groups.values())