首页 > 其他 > 详细

hdu 1247 Hat’s Words(从给的单词中找hat's word 并按字典序输出)

时间:2015-07-26 12:48:45      阅读:283      评论:0      收藏:0      [点我收藏+]

1.在使用mp[key]的时候它会去找键值为key的项,如果没有,他会自动添加一个key的项,再把value赋值为相应的初始值(value是int的话赋值为0,string的话赋值为空)。所以如果是插入的话可以用insert,如果是查找的话可以使用find,这样可以节省开销。查找的时间复杂度为O(logn)

技术分享

2.

代码:

#include<iostream>
#include<string>
#include<map>
using namespace std;

string word[50005];
map<string,int> mp;//用平衡二叉树实现的,按key从小到大排

int main()
{
    int i=0;
    //printf("%d\n",k.max_size());用来看容器的容量
    while(cin>>word[i++])//用ctrl+z然后enter结束循环
    {
        mp[word[i-1]]=1;//mp[]中的[]已重载,注意是i-1啊啊!!!!!!
    }
    map<string,int>::iterator it;
    for(it=mp.begin(); it!=mp.end(); it++)
    {
        string w=it->first;
        for(i=1; i<w.length()-1; i++)
        {
            string w1(w,0,i);//复制[0,i)
            string w2(w,i);//从w的i位置开始复制
            if(mp.find(w1)!=mp.end()&&mp.find(w2)!=mp.end())
            {
                cout<<w<<endl;
                break;
            }
        }
    }
    return 0;
}


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

hdu 1247 Hat’s Words(从给的单词中找hat's word 并按字典序输出)

原文:http://blog.csdn.net/xky1306102chenhong/article/details/47066037

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!