ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

POJ - 2503 - Babelfish(hash算法水题)

2019-09-18 09:44:09  阅读:218  来源: 互联网

标签:hash 水题 int char define POJ 15 include getchar


题目:POJ-2503

题意:字典中的单词对于不同的类别,求给定的单词的类别

题解:直接hash,但是输入真的很毒瘤。。。。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<map>
#define P 233
#define N 100005
#define LL long long
using namespace std;
char s[15],a[N][15],b[15];
char t;
map<LL,int>vis;
int main()
{
	int n=0;
	while(1)
	{
		n++;
		if((t=getchar())=='\n')break;
		else
		{
			a[n][0]=t;
			int k=0;
			while(1)
			{
				t=getchar();
				if(t==' '){break;}
				else a[n][++k]=t;//输入a
			}
		}
		scanf("%s",b);
		getchar();//吃掉回车
		int len=strlen(b);
		LL has=0;
		for(int i=0;i<len;i++)
			has=has*P+(b[i]-'a'+1);
		vis[has]=n;
	}
	while(~scanf("%s",s))
	{
		LL has=0;
		int len=strlen(s);
		for(int j=0;j<len;j++)
			has=has*P+(s[j]-'a'+1);
		if(vis[has]==0)printf("eh\n");
		else printf("%s\n",a[vis[has]]);
	}
	return 0;
}

 

标签:hash,水题,int,char,define,POJ,15,include,getchar
来源: https://blog.csdn.net/Ljh_handsome/article/details/100972497

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有