题目大意:

给你一本火星词典,每个火星单词对应一个英文单词。

然后给你一篇火星文章,要求你翻译成英文。

要求如下:

如果这个火星单词用英文单词可以表示,就翻译成英文,如果没有这个单词,就原样输出。遇到标点符号或者空格原样输出即可。

____________________________________________________________________________________________

把给的每一个火星词建立trie,并在每个trie节点中建立一个字符串s,用来存储对应的英语单词,当然还要有exist存储是否构成单词。剩余的就是字符串的处理了!

____________________________________________________________________________________________

 //hdu 1075
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm> using namespace std;
struct tn
{
tn * next[];
bool exist;
char s[];
}*root;
tn * create()
{
tn * tp=new(tn);
tp->exist=;
memset(tp->next,,sizeof(tp->next));
tp->s[]='\0';
return tp;
}
void insert(char *ss,char *s)
{
tn * p=root;
char *q=ss;
while(*q)
{
int id=*q-'a';
if(p->next[id]==NULL)p->next[id]=create();
p=p->next[id];
q++;
}
p->exist=;
strcpy(p->s,s);
}
char * search(char *ss)
{
tn *p=root;
char *q=ss;
while(*q)
{
int id=*q-'a';
p=p->next[id];
q++;
if(p==NULL)return NULL;
}
if(p->exist)return p->s;
else return NULL;
}
char s[],ss[],sss[];
int main()
{
root=create();
scanf("%s",s);
while(scanf("%s",s) && strcmp(s,"END")!=)
{
scanf("%s",ss);
insert(ss,s);
}
while(gets(ss) && strcmp(ss,"START")!=);
int js;
while(gets(ss) && strcmp(ss,"END")!=)
{
js=;
for(int i=;ss[i]!=;++i)
if(ss[i]>='a' && ss[i]<='z')sss[js++]=ss[i];
else
{
sss[js]='\0';
char *tmp=search(sss);
if(tmp==NULL)printf("%s",sss);
else printf("%s",tmp);
printf("%c", ss[i]);
js=;
}
printf("\n");
}
return ;
}

HDU1075的更多相关文章

  1. HDU1075 - What Are You Talking About(Trie树)

    题目大意 给定一些火星文单词以及对应的英语单词,然后给你一些火星文,要求你翻译成对应的英文 题解 第一次写Trie树! 把所有火星文单词插入到Trie树中,并且每个火星文单词结尾的节点记录相应英文单词 ...

  2. HDU1075 字典树板子题

    题意 :给出两组字符串 一一映射,给出一种组成的文字,要求映射成另外一种思路:使用字典树,把映射的另外一个字符存在字典树的单词节点处  例如 abc   123 则把123存在abc节点中的c处即可 ...

  3. (map)What Are You Talking About hdu1075

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  4. What Are You Talking About HDU1075

    一开始我也想用map  但是处理不好其他字符.. 看了题解   多多学习! 很巧妙  就是粗暴的一个字符一个字符的来 分为小写字母和非小写字母两个部分  一但单词结束的时候就开始判断. #includ ...

  5. HDU1075 字典树 + 字符串映射

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 ,字典树的字符串映射. 题意是给你每个火星文单词对应的英语,然后让你把一篇火星文文章给翻译成英语 ...

  6. HDU1075 What Are You Talking About(map)

    传送门 题目大意:一个单词对应另一个单词 翻译一段文字 题解:stl map走一波 代码: #include<iostream> #include<map> #include& ...

  7. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  8. Trie树入门及训练

    什么叫Trie树? Trie树即字典树. 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本 ...

  9. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...

随机推荐

  1. HTML元素事件

    事件触发模型 简要说明 onclick 鼠标单击链接 ondbclick 鼠标双击链接 onmousedown 鼠标在链接的位置按下 onmmouseout 鼠标移出链接所在的位置 onmouseov ...

  2. Dynamics AX Hostory

    现在谈起Dynamics AX,在微软Dynamics系列产品当中,作为最受瞩目和最有前景的Dynamics套装产品线,很多人也许只知道它曾经由于资本市场的上市和并购,前后经历了三个“东家”.对于它长 ...

  3. OGC学习课程

    1.引言 由于项目需要,需要学习OGC相关地图标准,包括WMS.WFS.GML.SLD等,只是国内相关书籍大家都懂的,特向Google大师请教,得一秘籍<Open Web Mapping> ...

  4. LoadRunner测试结果分析02 转载至zhangzhe的新浪博客

    LoadRunner测试结果分析之我见 上述测试过程的重点在于事务,而LoadRunner生成的测试结果图并不局限于事务上,其中还有是关于Vusers.Errors.Web Resources.Web ...

  5. django--app(六)

    1.应用加载 服务启动后,再新添加应用,是不会自动加载的,需要重启服务.

  6. leetcode-【中等题】228. Summary Ranges

    题目: 228. Summary Ranges Given a sorted integer array without duplicates, return the summary of its r ...

  7. jquery easyui校验select下拉列表值是否为空的问题

    属性名 类型 描述 默认值 required 布尔 定义文本域是否为必填项 false validType 字符串 定义字段的验证类型,比如email, url, etc. null missingM ...

  8. js一个抽奖的例子

    朋友公司开年会,帮忙写了个抽奖的demo,源码如下,github中有程序: html: <header> lottery demo </header> <div clas ...

  9. JS function document.onclick(){}报错Syntax error on token "function", delete this token

    JS function document.onclick(){}报错Syntax error on token "function", delete this token func ...

  10. OAF屏蔽的错误

    ORACLE EBS中OAF屏蔽的错误 ORACLE EBS R12中引入了XML Publisher,Oracle Application Framework等新东西,利用网页/JSP技术增强For ...