zoukankan      html  css  js  c++  java
  • HDU 1247 Hat's Words (map+string)

    Hat’s Words

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10993    Accepted Submission(s): 3944

    Problem Description
    A hat’s word is a word in the dictionary that is 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 of lowercase words, one per line, in alphabetical order. There will be no more than 50,000 words. Only one case.
     
    Output
    Your output should contain all the hat’s words, one per line, in alphabetical order.
     
    Sample Input
    a
    ahat
    hat
    hatword
    hziee
    word
     
    Sample Output
    ahat
    hatword
     
    这道题小弱初看时, 好像没有什么思路。然而其实计算机的最大好处就在计算的快速。 所以直接暴力就行啦! 现在一看到题老是想是否要用到什么高级的结构,什么技巧, 其实有些题, 废话少说,直接上暴力就行啦。
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<map>
    using namespace std;
    
    map<string,int> M;
    string str[50005];
    
    int main()
    {
        //freopen("in.txt", "r", stdin);
        int k = -1;
        while(cin>>str[++k])
        M[str[k]] = 1;
        for(int i=0; i<=k; i++)
        {
            int len= str[i].size()-1;
            for(int j=1; j<len; j++)
            {
                string s1(str[i], 0, j);
                string s2(str[i], j);
                if(M[s1]==1&&M[s2]==1)
                {
                    cout<<str[i]<<endl;
                    break;
                }
            }
        }
        return 0;
    }

    本题技巧: string  s1(str[i], 0, j);把str[i]中的0~j的字符赋给s1. string s2(str[i], j)把str[i]中的j~末尾的字符赋给s2.

  • 相关阅读:
    IIS和ASP.NET2.0
    VS.NET里关于不能够使用向导的问题
    CodeFile
    判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
    托管和非托管资源
    ASP.NET 2.0页面框架的几处变化
    导出QQWry.Dat中IP地址到文件[C#]
    面向对象在数据库应用程序中的应用(dotNet)
    如何取得IP/用户名等信息
    验证Email是否真正存在(上)
  • 原文地址:https://www.cnblogs.com/acm1314/p/4760769.html
Copyright © 2011-2022 走看看