UVa123 - Searching Quickly

题目地址:点击打开链接

C++代码:

 

#include <iostream>

#include <set>

#include <map>

#include <string>

#include <cctype>

#include <cstdio>

using namespace std;

int main()

{

	set<string> ignore;

	string str;

	multimap<string,string> ssm;

	while(cin>>str&&str!="::")

		ignore.insert(str);

	getchar();

	while(getline(cin,str))

	{

		int i;

		for(i=0;i<str.size();++i)

			str[i]=tolower(str[i]);

		for(i=0;i<str.size();i++)

		{

			if(!isalpha(str[i]))

				continue;

			int j=i;

			while(j<str.size()&&isalpha(str[j]))

				++j;

			string key_str(str,i,j-i);

			if(!ignore.count(key_str))

			{

				for(int k=0;k<key_str.size();++k)

					key_str[k]=toupper(key_str[k]);

				string t(str);

				t.replace(i,j-i,key_str);

				ssm.insert(make_pair(key_str,t));

			}

			i=j;

		}

	}

	map<string,string>::const_iterator iter=ssm.begin();

	while(iter!=ssm.end())

	{

		cout<<iter->second<<endl;

		++iter;

	}

	return 0;

}


 

 

你可能感兴趣的:(search)