哈希查找 C语言版
题目描述
根据输入的int 数组建立哈希表,然后查找是否存在相应元素。
输入描述
第一行为测试数据的组数n, 下面有n组测试数据。对于每组测试数据,第一行为用空格隔开的int数列,数量不超过1,000,000,下面一行为查找数目m, 接下来的m行为m个需要查找的数(int型)。
输出描述
每组测试数据输出m行,如果存在相应的元素,输出“Yes.”,否则输出“No.”。
输入样例
1
1 2 4 5 3 6
2
1
7
输出样例
Yes.
No.
提示
哈希吧, 骚年们。
#include<stdio.h>
int a[9000000]={0};
char s[100000];
int main()
{
int n,m,j,k,i,t,T,x,y;
scanf("%d",&n);
getchar();
while (n--)
{
for (i=0;i<1000000;i++) a[i] = 0;
gets(s);
for (i=0;i<strlen(s);i++)
{
if (s[i]>='0' && s[i]<='9')
a[ s[i] - '0' ] = 1;
}
scanf("%d",&m);
while(m--)
{
scanf("%d",&y);
if (a[y]==1)
printf("Yes.\n");
else
printf("No.\n");
}
}
return 0;
}