http://acm.hdu.edu.cn/showproblem.php?pid=1075
/**//* START hh1 aa END START a aa END */ #include<iostream> #include<string> using namespace std; int i; struct dictree { dictree *child[26]; char engWord[11]; dictree()//初始化非常的有必要 { for(i=0;i<26;i++) child[i] = NULL; engWord[0]='\0'; } }; dictree root; void insert(char eng[],char mar[])//构建字典树 { dictree *now = &root; char *tmp = mar; while(*tmp) { if(now->child[*tmp-'a']==NULL) now->child[*tmp-'a'] = new dictree; now = now->child[*tmp-'a']; tmp++; } strcpy(now->engWord,eng); }
char *find(char ch[])//查找单词 { dictree *p = &root; int k=0; while(1) { if(ch[k]=='\0' || p->child[ch[k]-'a']==NULL) break; p = p->child[ch[k]-'a']; k++; } if(ch[k]=='\0' && strcmp(p->engWord,"")!=0) return p->engWord; return NULL; }
int main() { char a[11],b[11]; scanf("%s",a);//"START" while(scanf("%s",a) && strcmp(a,"END")!=0 ) { scanf("%s",b); insert(a,b); } scanf("%s",a);//"START" getchar();//吃回车 char tmp[3002]; while(1) { gets(tmp);//用这个比getline()强 if(strcmp(tmp,"END") == 0 ) break; int i,len,k=0; len = strlen(tmp); tmp[len]=' ';//多加一个' ',输出的时候注意 tmp[++len]='\0'; char tp[3002]; for(i=0;i<len;i++) { if(!(tmp[i]>='a' && tmp[i]<='z'))//非小写字母 { tp[k]='\0'; char *temp = find(tp);//查找是否有对应的engWord if(temp)//存在这个单词 printf("%s",temp); else printf("%s",tp);//可以用cout<<tp;//不可以用puts(tp);用puts有换行 k=0; if(i!=len-1)//最后有一个' '是多余的 cout<<tmp[i];//输出非小写字母字符 } else //小写字母 tp[k++]=tmp[i]; } cout<<endl; } return 0; }
#include<iostream> #include<string> #include<map> using namespace std; map<string,string>M; int main() { string a,b; cin>>a;//"START" while(cin>>a && a!="END") { cin>>b; M[b] = a; } cin>>a;//"START" getchar();//吃回车 char tmp[3005]; while(1) { gets(tmp);//用这个比getline()强 if(strcmp(tmp,"END") == 0 ) break; int i,len; len = strlen(tmp); b = ""; for(i=0;i<len;i++) { if(!(tmp[i]>='a' && tmp[i]<='z'))//非小写字母 { if(M[b]!="")//存在这个单词 cout<<M[b]; else cout<<b; b=""; cout<<tmp[i]; } else //小写字母 b+=tmp[i]; } cout<<endl; } return 0; }
|
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 |
|
公告
导航
统计
- 随笔: 84
- 文章: 7
- 评论: 49
- 引用: 0
常用链接
留言簿(6)
随笔分类
随笔档案
文章分类
文章档案
相册
百事百通
搜索
积分与排名
最新评论
阅读排行榜
评论排行榜
|
|