運動5_5 uva0391の複合語(のこぎり)

あまりにも多くの食べ物が、また、長い時間のために考えたい...
メインスティッキングポイント12万個の単語である
各単語の暴力は、それが接頭辞であるかどうかの単語の前に最初に行く、とそこサフィックス、O(nはN *かどうかを判断する場合)アルゴリズム...
辞書式ソートこの問題は、(nはLOGN)アルゴリズム、および半分の缶のためのことを思い出させるためにあります!だから、どのようにそれの半分、隠されたバグの巧妙な使用!
言葉自体の長さは100を超えていません!だから、暴力的な列挙の接頭辞と接尾辞、および照会、どのようなクエリ(N-nlog)?SET!
OK、コード

#include <bits/stdc++.h>
using namespace std;
set<string> dic;
int main()
{
	string s;
	while(cin >> s)
	{
		dic.insert(s);
	}
	for (set<string>:: iterator it = dic.begin(); it != dic.end(); it++)
	{
		string ss = *it,l,r;
		int len = ss.size();
		for (int i = 0; i < len; i++)
		{
			l = ss.substr(0,i+1);
			r = ss.substr(i+1,len);
			if(dic.count(l) && dic.count(r))
			{
				cout<<ss<<endl;
				break;
			}
		} 
	}
	return 0;
} 
公開された55元の記事 ウォンの賞賛1 ビュー2657

おすすめ

転載: blog.csdn.net/qq_37548017/article/details/100067487