《挑战2》散列法
Search III
Your task is to write a program of a simple dictionary which implements the following instructions:
- insert str: insert a string str in to the dictionary
- find str: if the distionary contains str, then print 'yes', otherwise print 'no'
Input
In the first line n, the number of instructions is given. In the following n lines, n instructions are given in the above mentioned format.
Output
Print yes or no for each find instruction in a line.
Constraints
- A string consists of 'A', 'C', 'G', or 'T'
- 1 ≤ length of a string ≤ 12
- n ≤ 1000000
Sample Input 1
5 insert A insert T insert C find G find A
Sample Output 1
no yes
Sample Input 2
13 insert AAA insert AAC insert AGA insert AGG insert TTT find AAA find CCC find CCC insert CCC find CCC insert T find TTT find T
Sample Output 2
yes no no yes yes yes
本题采用的是双散列结构,其他的散列方式还没有尝试,以后有时间可以套进去试一下。
本题主要分为两部分:
1.将字符串转换通过合适的方法转换为一个整数值,这个合适的意思是尽量将元素分散,均匀分布
2.将这个整数值通过双散列法转换为一个散列值