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; }