HDU-1075(字典树入门)
2012-08-09 10:25
295 查看
这道题目,我构思思路可是构思了好长时间....
主要是需要注意的点太多了,建树啊,查找啊什么的都好弄,就是,去字母的时候需要注意一些东西.比如,你遇到了标点就要停一下,,你遇到了空格回车也需要停一下,
反正是一定要考虑周全的.要不然出不了答案的.
贴出代码:
主要是需要注意的点太多了,建树啊,查找啊什么的都好弄,就是,去字母的时候需要注意一些东西.比如,你遇到了标点就要停一下,,你遇到了空格回车也需要停一下,
反正是一定要考虑周全的.要不然出不了答案的.
贴出代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> struct T{ T *next[26]; int flag; char trans[10]; }*root; const int st='a'; void init(T *t) { memset(t->next,0,sizeof(t->next)); t->flag=0; } void Insert(char *eng,char *mars) { T *t,*newnode; t=root; int n=strlen(mars); for(int i=0;i<n;i++) { if(t->next[mars[i]-st]==0) { newnode=new T; init(newnode); t->next[mars[i]-st]=newnode; t=newnode; } else { t=t->next[mars[i]-st]; } } t->flag=1; strcpy(t->trans,eng); } char * find(char *s) { T *t; t=root; int n=strlen(s); for(int i=0;i<n;i++) { if(t->next[s[i]-st]==0) return s; else { t=t->next[s[i]-st]; } } if(t->flag==1) return t->trans; else return s; } int main() { char t[10]; char eng[10],trans[10]; char *s; char c; char mars[10]; int m=0; root=new T; init(root); scanf("%s",t); if(strcmp(t,"START")==0) { while(scanf("%s",eng),strcmp(eng,"END")) { scanf("%s",trans); Insert(eng,trans); } } scanf("%s",t); if(strcmp(t,"START")==0) { getchar(); while(c=getchar()) { if('a'<=c&&c<='z'||'A'<=c&&c<='Z') mars[m++]=c; else if(c==' '||c=='\n') { mars[m]='\0'; if(strcmp(mars,"END")==0) break; s=find(mars); printf("%s",s); putchar(c); m=0; } else { mars[m]='\0'; if(strcmp(mars,"END")==0) break; s=find(mars); printf("%s",s); putchar(c); m=0; } } } return 0; }
相关文章推荐
- 字典树(入门) 之 hdu 1075
- 字典树(入门) 之 hdu 1075
- HDU 4825 Xor Sum(01字典树入门题)
- hdu 1075(字典树)
- HDU 1671 Phone List (字典树入门基础题)
- HDU 1075 What Are You Talking About(字典树)
- 字典树 hdu 1075
- hdu 1075 字典树
- hdu 1075(字典树)
- HDU 1075 字典树 树搜索 逆路径输出单词
- hdu 1075 (字典树映射)
- hdu 1075 What Are You Talking About 字典树
- HDU 1075 What Are You Talking About(字典树)
- HDU1075 What Are You Talking About 解题报告--字典树
- hdu 1075 (字典树)
- hdu 1075 What Are You Talking About 字典树(静态版)
- HDU 1075 What Are You Talking About (STL, 字典树)
- HDU 1075(简单字典树)
- hdu 1075 What Are You Talking About(字典树)
- hdu--1075--(字典树一般)