Cod sursa(job #3130981)

Utilizator dariutTache Daria dariut Data 18 mai 2023 22:20:31
Problema Hashuri Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 1.28 kb

class HashTable:
    def __init__(self):
        self.size = 1000000 
        self.table = [[] for _ in range(self.size)] 
        self.disp = 100003

    def _hash_function(self, key):
        return ord(str(key)[0]) % self.disp

    def insert(self, value):
        index = self._hash_function(value)  
        self.table[index].append(value)  

    def delete(self, key):
        index = self._hash_function(key) 
        slot = self.table[index]  
        for i in range(len(slot)):
            if slot[i] == int(key):
                slot[i] = None
                return

    def search(self, key):
        index = self._hash_function(key) 
        slot = self.table[index] 
        for k in range(len(slot)):
            if slot[k] == int(key):
                if slot[k] is not None:
                    return 1 
        return 0  



hash_table = HashTable()
f = open("hashuri.in", "r")
g = open("hashuri.out", "w")

n = int(f.readline().strip())
for i in range(n):
    
    ops = f.readline().strip().split()
    print(*ops)
    if int(ops[0]) == 1:
        hash_table.insert(int(ops[1]))
    elif int(ops[0]) == 2:
        hash_table.delete(int(ops[1]))
    elif int(ops[0]) == 3:
        g.write(str(hash_table.search(ops[1])))
        g.write("\n")