单词拼写检查

来源:互联网 发布:刷机解网络锁 编辑:程序博客网 时间:2024/06/11 18:25

单词拼写检查


输入  n个单词(n <=10000) 的单词库,单词长度(3-20),输入m个单词,查找是否在单词库里

输出  无法查找见的单词的个数

输入  

5

apple

be

love

down

3

up

down

bee

输出  

1

#include<stdio.h> #include<string >#include<iostream>using namespace std;int maxn=2001,ans=0,n,m;string h[2001];int hash(string s){//求s对应下标 int m,l,res;l=s.length();m=l/2;res=((s[0]-97)*100+(s[m]-97)*10+(s[l]-97));return res%maxn;}void insert(string s){//插入哈希表  int t=hash(s);while(h[t]!="" && h[t]!=s){//开放地址法 t++; if(t==maxn){t=0;}}h[t]=s;}void find(string s){//查看是否在哈希表里 int t=hash(s);while(h[t]!="" && h[t]!=s){t++;if(t==maxn){t=0;}}if(h[t]==""){ans++;}}int main(){ int i,j; string word; scanf("%d%d",&n,&m); for(i=1;i<=n;i++){ cin>>word; insert(word); } scanf("%d",&m); for(i=1;i<=m;i++){ cin>>word; find(word); } printf("%d\n",ans); return 0;}


原创粉丝点击