hdu 1075 字典树
2011-11-25 16:04
302 查看
输入有点繁琐
View Code
View Code
#include<stdio.h> #include<string.h> #include<stdlib.h> struct node { struct node *child[26]; char *str; }*root; void insert(char *c1,char *c2) { int len=strlen(c2); struct node *cur,*newnode; cur=root; for(int i=0;i<len;i++) { if(cur->child[c2[i]-'a']!=0) cur=cur->child[c2[i]-'a']; else { newnode = new struct node; cur->child[c2[i]-'a']=newnode; for(int j=0;j<26;j++) newnode->child[j]=0; newnode->str=NULL; cur=newnode; } } cur->str=new char[15]; strcpy(cur->str,c1); } void find_print(char *c2) { int len=strlen(c2); struct node *cur; cur=root; if(!len) return ; for(int i=0;i<len;i++) { if(c2[i]<'a'||c2[i]>'z'||cur->child[c2[i]-'a']==0) { printf("%s",c2); return ; } else cur=cur->child[c2[i]-'a']; } if(cur->str!=NULL) printf("%s",cur->str); else printf("%s",c2); } int main() { char s[15],temp[3005],c1[15],c2[15]; root=new struct node; for(int i=0;i<26;i++) root->child[i]=0; scanf("%s",temp); while(scanf("%s",c1)&&strcmp(c1,"END")!=0) { scanf("%s",c2); insert(c1,c2); } scanf("%s",temp); getchar(); while(gets(temp)&&strcmp(temp,"END")!=0) { int len=strlen(temp); int num=0; bool flag=false; for(int i=0;i<len;i++) { if(temp[i]>='a'&&temp[i]<='z') { if(flag==false) flag=true; s[num++]=temp[i]; } else { if(flag) { flag=false; s[num]='\0'; num=0; find_print(s); } printf("%c",temp[i]); } } if(flag) { s[num]='\0'; find_print(s); } printf("\n"); } return 0; }
相关文章推荐
- HDU_1075_What Are You Talking About(字典树)
- hdu 1075 What Are You Talking About 字典树(静态版)
- [字典树]hdu 1075
- hdu 1075(字典树)
- 【HDU 1075】What Are You Talking About(字典树)
- hdu 1075 What Are You Talking About (字典树)
- 字典树(入门) 之 hdu 1075
- hdu 1075 (字典树映射)
- 字典树 hdu 1075
- HDU 1075 字典树裸
- HDU 1075 What Are You Talking About (字典树)
- HDU1075 What Are You Talking About 解题报告--字典树
- hdu 1075 字典树 和 map做法
- hdu 1075 What are you taiking about!再谈字典树
- 字典树(入门) 之 hdu 1075
- hdu 1075-What Are You Talking About(Map&&字典树)
- hdu 1075 What Are You Talking About【字典树】
- HDU 1075 1247(字典树)
- 字典树 hdu 1075
- hdu--1075--字典树||map