풀이
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"]))
풀이 해석
댓글남기기