zoukankan      html  css  js  c++  java
  • UVA-10391 Compoud 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 the concatenation 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, in alphabetical order. Sample Input a alien born less lien never nevertheless new newborn the zebra Sample Output alien newborn

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<iostream>
    #include<string>
    using namespace std;
    const int maxn=2e5;
    int a[maxn], t = -1, sum = 0;
    char s[maxn][30], ch1[30], ch2[30];
    
    int Hash(char *str)
    {
    	int seed = 31, hash = 0;
    	while (*str)
    		hash = hash * seed + *str++;
    	return hash & 0x7FFFFFFF;
    }
    int Find(int key, int l, int r)
    {
    	int mid = (l + r) / 2;
    	if(l>r) return 0;
    	if(a[mid]==key) return 1;
    	else if(a[mid]>key) Find(key, l, mid - 1);
    	else  Find(key, mid + 1, r);
    }
    int main()
    {
    	int i, j, k, l;
    	while(gets(s[++t])) a[t] = Hash(s[t]);
    	sort(a, a + t);
    	for (i = 0; i<t; i++)
    	{
    		l = strlen(s[i]);
    		for (j = 0; j<l - 1; j++)
    		{
    			for (k = 0; k <= j; k++)
    				ch1[k] = s[i][k];
    			ch1[j + 1] = '';
    			for (k = j + 1; k<l; k++)
    				ch2[k - j - 1] = s[i][k];
    			ch2[l - j - 1] = '';
    			if (Find(Hash(ch1), 0, t - 1) + Find(Hash(ch2), 0, t - 1) == 2) 
    			{
    				printf("%s
    ",s[i]);
    				break; 
    			}
    		}
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    appium 方法整理
    appium_获取元素状态
    Locust性能测试_参数关联
    Locust性能测试-参数化批量注册
    pytest_命令行传参
    pytest_函数传参和firture传参数request
    pytest_用例a失败,跳过测试用例b和c并标记失败xfail
    pytest_skip跳过用例
    pytest_使用自定义标记mark
    算法:迷宫问题
  • 原文地址:https://www.cnblogs.com/csushl/p/9386502.html
Copyright © 2011-2022 走看看