哈希查找 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.
");
            else
                printf("No.
");
        }
    }


    return 0;
}
原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451246.html