1

私のハッシュ コードは、単語のタイトル全体のみを返します。少なくとも 2 単語 (以降) のキーワードのみを使用して結果を表示し、結果を表示する (get 関数) ようにしたいと考えています。

私のハッシュコード

class hashin:
def __init__(self):
    self.size = 217  # size of hash table
    self.map = [None] * self.size

def _get_hash(self, key):
    hash = 0
    for char in str(key):
        hash += ord(char)
    return hash % self.size
#returns the ASCII value of char in str(key)

def add(self, key, value):  # add item to list
    key_hash = self._get_hash(key)
    key_value = [key, value]
    if self.map[key_hash] is None:
        self.map[key_hash] = list([key_value])
        return True
    else:
        for pair in self.map[key_hash]:
            if pair[0] == key:
                pair[1] = value
                return True
        self.map[key_hash].append(key_value)
        return True

def get(self, key):  # search for item
    key_hash = self._get_hash(key)
    if self.map[key_hash] is not None:
        for pair in self.map[key_hash]:  # find pair of words
            if pair[0] == key:  # if pair is equals to the whole title of the word
                return pair[0] + " - " + pair[1]
    return "Error no results for %s \nEnter the correct word." % (key)

サンプル出力:

タイトル全体が入力されたとき

サンプル出力検索 (表示するには単語全体が必要です)

キーワードが入力されたとき (キーワードが入力された場合でも結果を表示する必要があります)

キーワードを入力しても結果がありません

必要なもの

4

1 に答える 1