POJ 2503 Babelfish(map)

这篇博客介绍了如何利用Map数据结构解决POJ 2503 Babelfish问题。文章提供了题目的中文翻译,输入输出格式说明,并给出了一段示例输入和输出。博主建议使用scanf和printf处理大输入和输出。解题策略是通过Map存储字典条目,将外语单词翻译成英文,对于不在字典中的单词,则翻译为'eh'。

题目传送门

题目中文翻译:

Description

你刚从滑铁卢搬到了一个大城市。这里的人们说的是一种难以理解的外语方言。幸运的是,你有一本词典来帮助你理解它们。

Input

输入由最多100,000个字典条目组成,后面跟着一个空行,再后面跟着最多100,000个单词的消息。每个字典条目都是一个包含英文单词的行,后跟一个空格和一个外语单词。字典中同一个外语单词不会出现多次。消息是外语中的一系列单词,每行一个单词。输入中的每个单词都是最多10个小写字母的序列。

Output

输出是将信息翻译成英文,每行一个字。外文字词不在字典中应翻译为“eh”。

Sample Input

dog ogday

cat atcay

pig igpay

froot ootfray

loops oopslay

 

atcay

ittenkay

oopslay

Sample Output

cat

eh

loops

Hint

Huge input and output,scanf and printf are recommended.

解题思路:

用map就可以水过去.

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<map>
 5 
 6 using namespace std;
 7 
 8 map<string,string> a;
 9 string l,l1,l2;
10 char p,lk;
11 
12 int main() {
13     while(true) {
14         lk = getchar();
15         if(lk == '\n') break;
16         l = lk;
17         while(true) {
18             p = getchar();
19             if(p == ' ') break;
20             l += p;
21         }
22         lk = getchar();
23         l1 = lk;
24         while(true) {
25             p = getchar();
26             if(p == '\n') break;
27             l1 += p;
28         }
29         a[l1] = l;
30     }
31     while(cin >> l2) {
32         if(a.count(l2)) 
33             cout << a[l2] << endl;
34         else cout << "eh" << endl;
35     }
36     return 0;
37 } 

 

转载于:https://www.cnblogs.com/lipeiyi520/p/11146526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值