频道栏目
首页 > 考试 > 其他 > 正文

龙8国际娱乐pt老虎机

2018-06-23 10:46:49      个评论    来源:da_kao_la的博客  
收藏   我要投稿

Hat’s Words(数据结构)。

Problem Description

A hat’s word is a word in the dictionary thatis the concatenation of exactly two other words in the dictionary.
You are to find all the hat’s words in a dictionary.

Input

Standard input consists of a number oflowercase words, one per line, in alphabetical order. There will be no morethan 50,000 words.
Only one case.

Output

Your output should contain all the hat’swords, one per line, in alphabetical order.

Sample Input

a

ahat

hat

hatword

hziee

word

Sample Output

ahat

hatword

-----------------------------------------------------

思路

题意:已知一个字典,按字典顺序输出所有可以由字典中两个单词(两个单词可以相同)拼接成的单词。

算法:用数组存储所有单词,随机存取为O(1);用map的keySet存储单词,valueSet用0/1表示该单词否/是在词典中出现,查询一个单词是否在map中为O(1). 用数组遍历单词,枚举所有拆分的可能性,如果拆分的两个单词都在map中查到了,则输出。

千万注意一个单词可能有多种可能的拆分方式,但只能输出一次。

字典树是一种更高效的做法,但用简单的map也能通过了。

-----------------------------------------------------

代码

龙8国际娱乐pt老虎机include
龙8国际娱乐pt老虎机include
龙8国际娱乐pt老虎机include
龙8国际娱乐pt老虎机include
using namespace std;
const int NMAX = 50055;
string s[NMAX] = {};
map mp;
int main()
{
龙8国际娱乐pt老虎机ifndef ONLINE_JUDGE
	ifstream fin ("hdu1247.txt");
	int i = 0,j,t;
	string ss,s1,s2;
	while (fin >> ss)
	{
		s[i] = ss;
		mp[ss] = 1;
		i++;
	}
	for (j=0; j> ss)
	{
		s[i] = ss;
		mp[ss] = 1;
		i++;
	}
	for (j=0; j
上一篇:Validate Binary Search Tree
下一篇:Recover Binary Search Tree
相关文章
图文推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站