码迷,mamicode.com
首页 > 其他好文 > 详细

uva 10391

时间:2015-05-25 10:03:31      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:stl   set   

一道关于set的水题,按输入顺序遍历就可以按照字典序输出
一开始用了二重循环结果TLE了。
后来发现可以直接一重循环搞定。

TLE代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <vector>
using namespace std;

set<string> s; 
vector<string> vt;

int main(){
    string str;
    while(cin>>str){
        vt.push_back(str);
        s.insert(str);
    }
    int len = vt.size();
    for(int i = 0;i<len;i++){
        for(int j=0;j<len;j++){
            if(j==i) continue;
            string con = vt[i] + vt[j];
            if(s.count(con)) cout<<con<<endl;
        }
    }
    return 0;
} 

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <vector>
using namespace std;

set<string> s; 
vector<string> vt;

int main(){
    string str;
    while(cin>>str){
        vt.push_back(str);
        s.insert(str);
    }
    int len = vt.size();
    for(int i = 0;i<len;i++){
        for(int j = 1;j<vt[i].length();j++){
            if(s.count(vt[i].substr(0,j))&&s.count(vt[i].substr(j,vt[i].length()-j))){
                cout<<vt[i]<<endl;break;
            }
        }
    }
    return 0;
} 

uva 10391

标签:stl   set   

原文地址:http://blog.csdn.net/iboxty/article/details/45958193

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!