poj2503
2024-10-12 04:31:07
有关字符串的hash,用黑书上推荐的传说中的ELFhash函数
输入的话,用sscanf处理比較简洁
#include<iostream>
#include<cstring>
using namespace std;
#define M 9991
struct n1
{
char foreigh[11],english[11];
n1 *next;
};
n1 hash[M];
int ELFhash(char *key)
{
long long g,h=0;
while(*key)
{
h=(h<<4)+*key++;
g=h&0xf0000000L;
if(g)
h^=g>>24;
h&=~g;
}
return h%M;
}
void find(char *s)
{
n1 *p;
for(p=&hash[ELFhash(s)];p->next!=0;p=p->next)
if(strcmp(p->foreigh,s)==0)
{
printf("%s\n",p->english);
return;
}
printf("eh\n");
}
void insert(char *e,char *f)
{
n1 *p;
for(p=&hash[ELFhash(f)];p->next!=0;p=p->next);
strcpy(p->english,e);
strcpy(p->foreigh,f);
p->next=new(n1);
p->next->next=0;
}
void datain()
{
char tmp[22],english[11],foreigh[11];
while(gets(tmp)&&tmp[0])
{
sscanf(tmp,"%s %s",english,foreigh);
insert(english,foreigh);
}
}
void solve()
{
char foreigh[11];
memset(hash,0,sizeof(hash));
datain();
while(scanf("%s",foreigh)!=EOF)
find(foreigh);
}
int main()
{
solve();
}
最新文章
- $.each与$().each
- knockoutjs with绑定导致unobtrusive validation失效的问题
- selenium之xpath定位和input文本
- 58. N-Queens &;&; N-Queens II
- 转:桥接模式(Bridge)
- akw、grep、sed常用命令
- jsonp调用webapi和mvc
- issues about Facebook Login
- Linux 多线程通信
- 对Node.JS的事件轮询(Event Loop)的理解
- Omi教程-使用group-data通讯
- React Native 轻松集成分享功能(iOS 篇)
- Rstudio-server 重新登录载入session的问题
- PHP微信H5支付
- 【比赛】NOIP2018 赛道修建
- Type I and type II errors | 第一类错误和第二类错误
- React-Native组件之Text内文字垂直居中方案
- 前端面试问题html汇总
- CURLOPT_RETURNTRANSFER
- B/S FastReprot使用