zoukankan      html  css  js  c++  java
  • Compound Words

    You are to find all the two-word compound words in a dictionary. A two-word compound word is a word in the dictionary that is theconcatenation of exactly two other words in the dictionary.

    Input

    Standard input consists of a number of lowercase words, one per line,in alphabetical order. There will be no more than 120,000 words.

    Output

    Your output should contain all the compound words, one per line, inalphabetical order.

    Sample Input

    a
    alien
    born
    less
    lien
    never
    nevertheless
    new
    newborn
    the
    zebra
    

    Sample Output

    alien
    newborn


    AC代码:
    #include"iostream"
    #include"set"
    using namespace std;
    int main()
    {
        set<string> dic;
        string s;
        while(cin>>s) dic.insert(s);
        set<string> ::iterator it;
        for(it=dic.begin();it!=dic.end();it++)
        {
         string str,sub1,sub2;
         str=*it;
         for(int i=0;i<str.size()-1;i++)
         {
             sub1=str.substr(0,i+1);
             sub2=str.substr(i+1,str.size()-i-1);
             if(dic.find(sub1)!=dic.end()&&dic.find(sub2)!=dic.end())
             {
                cout<<str<<endl;
                break;     //一定要即时break掉,以免重复
             }
         }
    
    
        }
        return 0;
    }
  • 相关阅读:
    第五课 主引导程序的扩展 下
    C.Candy
    B.大钉骑马走江湖
    A喝酒(北京林业大学校赛)
    HDU 5666 Segment
    南京理工大学第八届校赛题目题解(部分)
    TCO 2016 Round 1B
    139. Word Break
    90. Subsets II
    78. Subsets
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/4659949.html
Copyright © 2011-2022 走看看