【POJ 2503】Babelfish(字符串)
给定字典,再询问。
字典与询问之间有一个空行。
cin.peek()是一个指针指向当前字符。
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string, string>dic;
string s, t;
int f;
int main()
{
ios::sync_with_stdio(false);
while(cin >> s)
if(cin.peek() == '\n')//指针当前指向\n
if(!f)
{
f = ;
dic[s] = t;//当前读入的s是外星文,刚才读入的t是对应的英文
}
else
cout << ((t = dic[s]) != "" ? t : "eh" ) << "\n";
else//未换行说明s是字典的英文
{
f = ;//f=0代表下一个要读外星文
t = s;
}
}
处理空行的技巧
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 100005
#define M 15
char s[N];
int c;
struct mydic
{
char zh[M];//外星文
char en[M];//英文
} dic[N];
int cmp(const mydic &a, const mydic &b)
{
return strcmp(a.zh, b.zh) >= ;
}
void solve()
{
int l = , r = c;
while(l < r)
{
int m = r+l >> ;
int f = strcmp(s, dic[m].zh);
if(f == )
{
printf("%s\n", dic[m].en);
return;
}
if(f < )
l = m + ;
else
r = m;
}
printf("eh\n");
}
int main()
{
while(gets(s))
{
if(!s[])break;//读到空行
sscanf(s,"%s%s",dic[c].en,dic[c].zh);
c++;
}
sort(dic, dic + c, cmp);
while(gets(s))
solve();
}
【POJ 2503】Babelfish(字符串)的更多相关文章
- poj 2503 Babelfish (查找 map)
题目:http://poj.org/problem?id=2503 不知道为什么 poj 的 数据好像不是100000,跟周赛的不一样 2000MS的代码: #include <iostrea ...
- poj 2503 Babelfish(Map、Hash、字典树)
题目链接:http://poj.org/bbs?problem_id=2503 思路分析: 题目数据数据量为10^5, 为查找问题,使用Hash或Map等查找树可以解决,也可以使用字典树查找. 代码( ...
- poj 2503:Babelfish(字典树,经典题,字典翻译)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 30816 Accepted: 13283 Descr ...
- POJ 2503 Babelfish
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 28766 Accepted: 12407 Descripti ...
- poj 2503 Babelfish(字典树哈希)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 29059 Accepted: 12565 Description You hav ...
- poj 2503 Babelfish(字典树或着STL)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 35828 Accepted: 15320 Descr ...
- Poj 2503 Babelfish(Map操作)
一.Description You have just moved from Waterloo to a big city. The people here speak an incomprehens ...
- 题解报告:poj 2503 Babelfish(map)
Description You have just moved from Waterloo to a big city. The people here speak an incomprehensib ...
- POJ 2503 Babelfish (STL)
题目链接 Description You have just moved from Waterloo to a big city. The people here speak an incompreh ...
- POJ 2503 Babelfish(map,字典树,快排+二分,hash)
题意:先构造一个词典,然后输入外文单词,输出相应的英语单词. 这道题有4种方法可以做: 1.map 2.字典树 3.快排+二分 4.hash表 参考博客:[解题报告]POJ_2503 字典树,MAP ...
随机推荐
- https证书提供商
http://www.itrus.com.cn/verisignchina/About/aboutitrus/Index.html
- Java核心技术点之集合框架
1. 概述 Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...
- web.config connectionStrings 数据库连接字符串的解释(转载)
先来看一下默认的连接SQL Server数据库配置 1.默认生成 <connectionStrings> <add name="Exa*DB" connectio ...
- expect的爱恨情仇
背景 openvpn生成证书想把它做成一键化,这样添加新用户时候就方便 遇到的问题 我的代码 gg_vpn_keys.exp #!/usr/bin/expect set user [lindex $a ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...
- hadoop 2.6全分布安装
环境:centos 6.6 + hadoop2.6 虚拟机:(vmware fusion 7.0.0) 虚拟机hostname / IP地址 master / 192.168.187. ...
- Android -- Apk安装简诉
安装涉及到如下几个目录 system/app 系统自带的应用程序,无法删除 data/app 用户程序安装的目录,有删除权限. 安装时把apk文件复制到此目录 data/data 存放 ...
- 为什么Javascript中的基本类型能调用方法?
我们从一道笔试题说起: var str = 'string'; str.pro = 'hello'; console.log(str.pro + 'world'); 输出啥?要理解这个问题,我们得从头 ...
- 页面跳转Transfer与Redirect的区别你知道吗?
一 前言 关于页面跳转的方式常用的应该就是,链接跳转,js跳转,Server.Tranfser和Response.Redirect 这几种,可是在Tranfser与Redirect之间用哪种更好(本文 ...
- Laravel如何优雅的使用Swoole
背景 正在做一个智能家居的项目(钱低的吓死人怎么办),接收下位机(就是控制智能家居硬件模块的HUB)协议解析,Web端维护硬件状态,利用APP交互.由于下位机数据是发送到服务器的XXX端口,所以必须对 ...