최대 1 분 소요

풀이

def polynomial_hash(str):
    m = 1000000007
    p = 31
    hash_num = 0
    for i, letter in enumerate(str):
        hash_num += ord(letter) * p^i % m
    hash_value = hash_num % m
    return hash_value

def solution(string_list, query_list):
    hash_list = [polynomial_hash(str) for str in string_list]
    result = []
    for query in query_list:
        query_hash = polynomial_hash(query)
        if query_hash in hash_list:
            result.append('True')
        else:
            result.append('False')
    return result

print(solution(["apple", "banana", "cherry"], ["banana", "kiwi", "melon", "apple"]))

풀이 해석

댓글남기기