UVaOJ 123 - Searching Quickly
来源:互联网 发布:网络社会零售额 编辑:程序博客网 时间:2024/05/21 21:43
AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving ::Sorting/Searching
Description
在一些文章标题中, 寻找关键词。
所谓关键词, 就是在一个过滤词表中, 没有被过滤掉的单词。
请将关键词找出来后, 按字典序排序。
且输出关键词时, 是将关键词在标题中以全大写的形式出现(其他单词全变为小写),
然后输出整个句子。
Type
Sorting/Searching
Analysis
利用 STL map 做起来就容易了,
将关键词作键, 对应的句子作值, 储存于 multimap 中。
(由于可能出现相同的关键词, 所以应该用 multimap)
连字典序排序都剩了。
最后要注意, 标题和过滤词表在输入时可以全转为小写,
会比较方便字符串操作。
Solution
// UVaOJ 123// Searching Quickly// by A Code Rabbit#include <cctype>#include <iostream>#include <set>#include <string>#include <map>using namespace std;string word;string title;string ToLower(string str);string ToUpper(string str);int main() { set<string> words; while (getline(cin, word)) { if (word == "::") break; else words.insert(ToLower(word)); } multimap<string, string> kwic; while (getline(cin, title)) { title = ToLower(title); string key; string val = title; for (int i = 0; i <= title.length(); i++) { if ((i == title.length() || title[i] == ' ') && key != "") { if (!words.count(key)) { key = ToUpper(key); for (int j = 0; j < key.length(); j++) val[i - key.length() + j] = key[j]; kwic.insert(make_pair(key, val)); val = title; } key = ""; } else { key += title[i]; } } } for (map<string, string>::iterator iter = kwic.begin(); iter != kwic.end(); ++iter) { cout << iter->second << endl; } return 0;}string ToLower(string str) { for (int i = 0; i < str.length(); i++) str[i] = tolower(str[i]); return str;}string ToUpper(string str) { for (int i = 0; i < str.length(); i++) str[i] = toupper(str[i]); return str;}
- UVaOJ 123 - Searching Quickly
- UVa 123 Searching Quickly
- uva 123 Searching Quickly
- UVA 123 - Searching Quickly
- uva 123 - Searching Quickly
- uva-123 - Searching Quickly
- 123 - Searching Quickly
- 123 - Searching Quickly
- UVA 123 - Searching Quickly
- UVa 123 - Searching Quickly
- UVa 123 Searching Quickly
- uva 123 - Searching Quickly
- uva 123Searching Quickly
- 123 - Searching Quickly
- UVA 123 Searching Quickly
- uva 123 - Searching Quickly
- uva - 123 - Searching Quickly
- UVa - 123 - Searching Quickly
- RabbitMQ 以及web管理插件的安装试用(windows)
- CSS3中的transform变形详解兼容ie
- winnt.h C2146 error C2146: syntax error : missing ';' before identifier 'PVOID64' 又一可能的解决方案
- 2012.11.21
- 那些年读过的好书
- UVaOJ 123 - Searching Quickly
- 黑马程序员_Java基础笔记(面向对象1)
- 定制Flex4组件外观皮肤
- was ejb客户端从jdk1.5到jdk1.6升级
- Zygote进程启动过程的源代码分析
- ContentProvider
- Ubuntu下ARM交叉编译环境配置
- 互联网营销我们应该怎么留住顾客?
- POJ 4273 Drainage Ditches