《ACM程序设计》书中题目 B
来源:互联网 发布:按键精灵mac版怎么用 编辑:程序博客网 时间:2024/04/29 14:08
题目简要:
一道字典的题,先输入定义字典,然后按照输入查找相应的单词。
输入包括最多100,005个字典条目,后面是空行,后面是最多100,005个字的消息。 每个字典条目是包含英语单词的行,后面是空格和FatMouse单词。没有FatMouse字在字典中出现不止一次。 消息是FatMouse语言中的一系列单词,每行一个单词。 输入中的每个字是最多10个小写字母的序列。
输出是消息翻译成英语,每行一个字。 FatMouse字不在字典中应该翻译为“eh”。
例如:
Sample Input
dog ogdaycat atcaypig igpayfroot ootfrayloops oopslayatcayittenkayoopslay
Output for Sample Input
catehloops
解题思路:
看到这道题,首先想到的是用map<string,string>,通过map用find查找,但是再实际的操作中遇到了输入结束不了的问题。主要是由于定义字典之后的空行无法处理,于是通过查资料,查书,问老师等等各种方法,才找到了以下解决方案:
while(gets(c)) { if(strcmp(c,"")==0)break; int i,l=strlen(c); for(i=0;i<l;++i) { if(c[i]==' ')break; } strncpy(a,c,i); a[i]='\0'; strncpy(b,c+i+1,l-i); b[l-i]='\0'; m[b]=a;}
解决输入结束问题后,查找就是用一个find就解决了。
附代码:
#include<bits/stdc++.h>using namespace std;int main(){map<string,string>m;map<string,string>::iterator it; char a[13],b[13],c[30]; while(gets(c)) { if(strcmp(c,"")==0)break; int i,l=strlen(c); for(i=0;i<l;++i) { if(c[i]==' ')break; } strncpy(a,c,i); a[i]='\0'; strncpy(b,c+i+1,l-i); b[l-i]='\0'; m[b]=a;}string q;while(cin>>q){it=m.find(q);if(it!=m.end())cout<<it->second<<endl;elsecout<<"eh"<<endl;}return 0;}
解题感受:
这道题本身并不难,但是输入格式的确是让我思考了好久,一直拖了好几天才解决。通过这道题,我又学会了一种解决的输入格式的办法,用gets和strcpy将输入的信息导入数组。开心···
0 0
- ACM程序设计 书中题目 B
- ACM程序设计书中题目B
- 《ACM程序设计》书中题目B-2
- 《ACM程序设计》书中题目--problem b
- 《ACM程序设计》书中题目 B
- 《ACM程序设计》书中题目―B
- 《ACM程序设计》书中题目B
- 关于acm程序设计书中题目 #B第二题
- 《ACM程序设计》书中题目 B-02 FatMouse word
- ACM程序设计书中题目--B(字典问题)
- 《ACM程序设计》书中题目
- 《ACM书中题目》 B
- 《ACM程序设计》书中题目B 第二题 fatmouse的语言
- 《ACM程序设计》书中题目--problem j
- 《ACM程序设计》书中题目 J
- 《ACM程序设计》书中题目O-15
- 《ACM程序设计》书中题目M-13
- 《ACM程序设计》书中题目--problem o
- Dragger2 浅入浅出
- 链结点
- 【数据结构_树_Tree_0980】用先序遍历创建树然后层次遍历输出
- mysql的事务性,锁和隔离性
- Qt之stylesheet使用介绍
- 《ACM程序设计》书中题目 B
- C4top-愿天下有情人都是失散多年的兄妹(DFS)
- javaweb实现上传功能
- JDK+Tomcat 服务器配置+腾讯云Win2012 R2
- 正则表达式相关:C# 抓取网页类(获取网页中所有信息)
- IP、TCP、UDP数据包长度问题
- PHP-邮件发送接口
- 最大堆 堆排序
- 使用AndroidStudio执行UI Automator 自动化测试版本问题