字典树

9890974 2013-12-25 15:31:06 Accepted 1075 468MS 59832K 1342 B G++ 泽泽
 #include<stdio.h>
#include<cstring>
#include<cstdlib>
struct node
{
node *next[];
int key;
char ans_s[];
}root;
void insert(char *str,char *s)
{
int len=strlen(str);
node *p=&root,*q;
for(int i=;i<len;i++)
{
int id=str[i]-'a';
if(p->next[id]==NULL)
{
q=(node *)malloc(sizeof(root));
q->key=;
for(int j=;j<;j++)
q->next[j]=NULL;
p->next[id]=q;
p=p->next[id];
}
else
p=p->next[id];
}
if(p->key!=-)
{
strcpy(p->ans_s,s);
p->key=-;
}
}
void find(char *str)
{
int len=strlen(str);
node *p=&root;
for(int i=;i<len;i++)
{
int id=str[i]-'a';
if(p->next[id]==NULL)
{
printf("%s",str);
return ;
}
else
{
p=p->next[id];
}
}
if(p->key==-)
printf("%s",p->ans_s);
else
printf("%s",str);
return; }
int main()
{
int i;
char s1[],s2[],s[];
for(i=;i<;i++)
root.next[i]=NULL;
scanf("%s",s1);
while(scanf("%s",s1)!=EOF&&strcmp(s1,"END")!=)
{
scanf("%s",s2);
insert(s2,s1);
}
scanf("%s",s1);
getchar();
while(gets(s)&&strcmp(s,"END")!=)
{
int k=,len=strlen(s);
for(i=;i<len;i++)
{
while(s[i]>='a'&&s[i]<='z')//满足是字母,wa了一次
{
s2[k++]=s[i++];
}
s2[k]='\0';
k=;
find(s2);
printf("%c",s[i]);
}
printf("\n");
} return ;
}

最新文章

  1. log4j 日志信息的引入(通用版)——解决项目运行过程中的日志信息
  2. XSLT
  3. HDU 3549 Flow Problem(最大流)
  4. centos安装g++
  5. 令人作呕的OpenSSL
  6. Jmeter实现MD5加密
  7. 《重构&mdash;&mdash;改善既有代码的设计》【PDF】下载
  8. HTTP 首部字段详细介绍
  9. 【bzoj3598】: [Scoi2014]方伯伯的商场之旅
  10. pytorch: 准备、训练和测试自己的图片数据
  11. 自然语言处理之jieba分词
  12. Emgu.CV 播放视频-本地文件/RTSP流
  13. scope 前缀开头的方法
  14. Python中str()和repr()函数的区别
  15. VS2012+openCV 2.4.8进行编译:VS2012 64位 使用OPENCV应用程序不能正常启动 (0xc000007b)怎么处理?
  16. Shell - 简明Shell入门12 - 定制输出(ColorOutput)
  17. Web服务器指纹识别工具httprint
  18. 2017 国庆湖南Day2
  19. Django ajax方法提交表单,及后端接受数据
  20. hdu 1712 (分组背包)

热门文章

  1. DOM(七)使用DOM控制表格
  2. Java数组的--遍历
  3. centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
  4. linux php配置ftp扩展
  5. 并行程序设计模式--Master-Worker模式
  6. struts2升级报ActionContextCleanUp&lt;&lt;is deprecated。Please use the new filters
  7. oracle-1
  8. Html-Css-设置DIV边框圆滑
  9. [NOIP2011] 提高组 洛谷P1315 观光公交
  10. TCP/IP详解 学习七