UVA10391:Compound Words(复合词)

原创 2017年02月02日 11:30:45

作者:xq的acm之路

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1332

题目大意:

有一堆按照字典序排好的字符串,问你有多少字符串是由其它两个字符串组成。
思路:如果用两个字符串拼接看拼接好的字符串是否在字典中,一定会超时。

我们可以逆向,由于字符串的长度不是很长,所以把一个字符串拆为两个字符串看这两个字符串是否都在字典中即可
主要用法:substr
参考链接:http://www.w3school.com.cn/php/func_string_substr.asp

#include <iostream>
#include <set>
#include <string>
#include <cstdio>
using namespace std;

set<string>cun;

int main()
{
    string ss;
    set<string>::iterator it;
    while(cin>>ss) cun.insert(ss);
    for(it=cun.begin(); it!=cun.end(); it++)
    {
        ss=*it;
        for(int i=0; i<ss.length()-1; i++)
        {
            string ss1=ss.substr(0,i+1);
            string ss2=ss.substr(i+1,ss.length()-1);
            if(cun.find(ss1)!=cun.end()&&cun.find(ss2)!=cun.end())
            {
                cout<<ss<<endl;
                break;
            }
        }
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

uva 10391复合词compound words(Trie+set)

给定一个词典,要求求出其中所有的复合词,即恰好有两个单词连接而成的词 trie存储以该单词为前缀的单词数量,然后对于每个单词,看在字典中的以该单词为前缀的单词“减去”原单词剩下的单词是否在字典中,如...

算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391

题目:https://vjudge.net/problem/UVA-10391思路:用vector存下单词,因为单词已按字典序排列于是复合词前半个单词一定在这个复合词之前,于是遍历寻找在首字母更变之前...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

UVa 10391 - Compound Words

hash存储,遍历每个单词的所有拆分,看是否都存在。 #include #include #include #include #include #include ...

uva 10391 Compound Words

这题还是很有意思的,wa了两三次,都是忽略了一些特殊情况,下面附上思路和代码和几个测试数据(数据自己写的) 思路: 任意一个单词(假设它为abcde)都有可能被任意组合出来(如a和bcde 或者ab和...

Uva - 10391 Compound Words(hash or stl)

Compound Words You are to find all the two-word compound words in a dictionary. A two-word compound...

[UVA10391]Compound Words[map][实现]

题目链接:[UVA10391]Compound Words[map][实现] 题意分析:给出字典中一堆单词,单词的输入方式是以字典序输入的。问:在这一堆单词中,有那些单词是通过其它两个单词组合而来的...

[刷题]算法竞赛入门经典(第2版) 5-5/UVa10391 - Compound Words

题意:问在一个词典里,那些单词是复合词,即哪些单词是由两个单词拼出来的。渣渣代码:(Accepted, 30ms)//UVa10391 - Compound Words #include #inclu...

UVa-10391 Compound Words

UVa-10391 Compound Words 分析:这个题起初我是用c语言里的基础做的,也就是说,没用 STL,便一跪再跪,超时再超时,但我感觉我的做法是 完全没错的。复合词...

uva 10391 - Compound Words

Problem E: Compound Words You are to find all the two-word compound words in a dictionary. A two-wo...

UVA 10391 - Compound Words 字符串hash

给定一个词典(已经按照字典序排好),要求找出其中所有的复合词,即恰好由两个单词连接而成的单词。(按字典序输出)
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)