博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HOJ 1898 Babelfish(Trie树)
阅读量:4347 次
发布时间:2019-06-07

本文共 1392 字,大约阅读时间需要 4 分钟。

题意就是先输入一个字典: 目标字符串-----输入字符串

然后输入一个字符串,在上面的对应关系中进行查找,如果有则输出目标字符串,没有则输出eh。

如果不想超时的话,明显就要套字典树了。

代码贴上来,留作模板。字典树还是挺简单易懂的嘛。。。

#include 
#include
#include
#include
using namespace std;const int num_char=26;struct TrieNode{ TrieNode* branch[num_char]; char data[12];};TrieNode head;int insert(const char *des,const char *src){ TrieNode *hp=&head; while(*src!=0) { if((hp->branch[*src-'a'])==NULL)hp->branch[*src-'a']=new TrieNode(); hp=hp->branch[*src-'a']; src++; } // if((hp->data)==NULL)hp->data=new char[strlen(des)+1]; strcpy(hp->data,des); return 0;}bool search(const char *str,char *entry){ TrieNode* t=&head; while(*str!=0) { if((t->branch[*str-'a'])==NULL)return false; t=(t->branch[*str-'a']); str++; } strcpy(entry,t->data); return true;}int main(){ char t[40]; while(gets(t)) { char src[12],des[12]; if(t[0]=='\0')break; sscanf(t,"%s %s",des,src); insert(des,src); } char consult[12]; while(scanf("%s",consult)!=EOF) { char entry[12]; if(search(consult,entry)) printf("%s\n",entry); else printf("eh\n"); } return 0;}

转载于:https://www.cnblogs.com/MicZ/archive/2012/08/27/2785374.html

你可能感兴趣的文章
第三次作业 个人统计分析报告
查看>>
ajax传参里含有特殊字符的坑
查看>>
python3.5 字典遍历
查看>>
proxy跨域
查看>>
走出迷宫
查看>>
月饼_5
查看>>
镜像二叉树
查看>>
2. LNMP安装了哪些软件
查看>>
C. 交叉连接(cross join)
查看>>
POJ3267
查看>>
POJ 1661 Help Jimmy (dijkstra,最短路)
查看>>
Java 线程实例 刷碗烧水和倒计时
查看>>
转载 - 微妙的圆角参数 纯CSS圆角Tab
查看>>
Python - 升级所有已安装的第三方包
查看>>
Caliburn.Micro 应用系列(一)
查看>>
iOS中copy和strong修饰变量的区别
查看>>
IRP的同步
查看>>
【Android】you must restart adb and eclipse 问题解决备忘
查看>>
Myeclipse 优化
查看>>
Python生成器与yield
查看>>