uva 10282 Babelfish(映射)

此题让我了解了一点map容器,所以说这道题还是我看的题解,以后看的越少越好。。。。

map就是映射,恩,挺好用的,还有就是gets()会读取换行符。。。getchar()也可以,但是scanf()这些

格式化的就读不了。。。会存在于缓冲器内

代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<string>
#include<map>
using namespace std;
map<string,string>Map;
char a[25];
char s[25];
char d[25];
char b[25];
void init()
{
	Map.clear();
}
int main()
{
	int i,j;
	while(gets(a))
	{
		if(a[0] == '\0')
			break;
		int len = strlen(a);
		for(i=0; i<len; i++)
		{
			if(a[i] == ' ')
				break;
		}
		int k=0;
		for(j=0; j<i; j++)
			s[k++] = a[j];
		k = 0;
		for(j=i+1; j<len; j++)
			d[k++] = a[j];
		Map[d] = s;
	}
	while(gets(b))
	{
		if(Map.find(b)!=Map.end())
			cout << Map[b] <<endl;
		else
			puts("eh");
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-30 06:27:32

uva 10282 Babelfish(映射)的相关文章

UVa 10282 - Babelfish

题目:你到了新的国家,手中有一个字典,把对应的语言翻译成英语. 分析:字符串,字典树.利用新语言建树,对应节点存储相应的英文单词,查询输出. 说明:强大的ungetc函数. #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace std; char Nword[21],Eword[21]; /* Trie define */ #de

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

POJ2503——Babelfish(map映射+string字符串)

Babelfish DescriptionYou have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortunately, you have a dictionary to help you understand them.InputInput consists of up to 100,000 diction

STL语法——映射:map 反片语(Ananagrams,UVa 156)

Description Most crossword puzzle fans are used to anagrams--groups of words with the same letters in different orders--for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have this attribute, no matter how you rearrange their lett

UVA 10152-ShellSort(映射+栈)

题意: 给出一堆乌龟名字,乌龟能从本身位置爬到顶端. 要求求出从原本的顺序到目标顺序的最小操作.输出每次操作移到顶端的乌龟的名字. 解析:名字用映射对应编号,把目标状态的乌龟从上到下的编号按1到N编好,从最底端开始扫初始状态的元素,如果与右边栈底指针指的元素编号相等,则两方的指针都加1,否则把初始状态的那个元素抽出来,而另一方的指针不变.最后把抽出来的元素按从大到小的顺序排一遍,因为编号大的先被放到顶端,后来就会被小的覆盖.输出即可. 代码如下: #include<cstdio> #inclu

Uva LV 2995 Image Is Everything 模拟,坐标映射,视图映射 难度: 1

题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=996 题意 被射击掉了一些列的魔方.组成模仿的每个方块的六个面颜色相同.给六个面的视图,求魔方最多还剩下多少个小块. 魔方最多十阶. 思路 关键在于将视图的坐标(加上视图深度)映射为三维坐标系内的坐标,之后就可以不断删除会造成矛盾的暴露在表面的方块,直到没有方块或者没有矛

uva 11557 - Code Theft(KMP)

题目链接:uva 11557 - Code Theft 题目大意:给定n个文本,每个文本有一个文本名,现在给出一个文本,求给定文本和n个文本中连续相同行数最大值,并且输出文本名,注意为0时不用输出其它的文本名. 解题思路:将每个字符串用映射成一个hash值,然后对匹配文本枚举后缀,建立失配数组进行KMP匹配,记录下每个文本的匹配最大值. #include <cstdio> #include <cstring> #include <map> #include <st

UVa 1586 Molar mass --- 水题

UVa 1586 题目大意:给出一种物质的分子式(不带括号),求分子量.本题中分子式只包含4种原子,分别为C.H.O.N, 原子量分别为12.01,1.008,16.00,14.01 解题思路:先实现一个从字符型的数到整型的数的转换函数,再将输入的串从头到尾扫描,遇到字母,则进一步扫描后面的数字的区间, 再调用函数进行转换,再乘以其的原子质量,最后累加到sum中即可. /* UVa 1586 Molar mass --- 水题 */ #include <cstdio> #include <

487--3279 UVA 755 其实有三种解法

说说:这道题初看挺简单的,题意无非就是将一串字符转化成一个用'-'隔开的电话号码,然后把出现超过一次的号码按照字典升序输出即可.但是这样样做是会超时的....其实把电话号码中间的'-'去掉,电话号码其实就是一个整数,有了这个想法那就简单啦.只要设立一个超大的数组包含所有可能的电话号码,然后数组的值是该号码出现的次数,统计完后遍历一遍输出即可.但是第三种相当于把前两种方法法结合起来了.把号码当成一个整数,但是号码存储在一个数组中,号码出现的次数存储在另一个数组中.这样在插入新号码的时候就排序,然后