COJ: Languages(字符串处理、map映射)
来源:互联网 发布:小米平板2怎么关闭优化 编辑:程序博客网 时间:2024/06/03 16:40
题目链接:CSU - 1826
题意:现在告诉你有n种语言,并给出每种语言对应的单词(不同语言间不会有相同的单词),然后给出几行文本,让你判断属于那种语言
思路:运用字符串流,先将每种语言对应的一行读进来,然后用字符串流将每个单词读进来,再用一个map将每个单词映射成每种语言的名称,然后也同样用字符串流输入每个单词,在输进来之前先遍历一遍其中可能出现的标点符号,将除“-”和“‘ ”以外的其他标点符号改成空格,并将字母都换成小写,最后找到出现过的单词,直接映射成相应的语言名称输出
AC代码:
#include<iostream>#include<cstdio>#include<map>#include<string>#include<sstream>#include<algorithm>#include<cctype>using namespace std;#define maxn 105map<string,string> m;string line,language,keywords,simplewords;int main(){ int n; cin>>n; m.clear(); getchar(); //清除缓冲区里的回车符,cin>>n最后会留下"\n" for(int i=0; i<n; i++) { getline(cin,line); stringstream ss(line); ss>>language; while(ss>>keywords) { for(int j=0; j<keywords.size(); j++) { if(isalpha(keywords[j])) keywords[j]=tolower(keywords[j]); } m[keywords]=language; } } while(getline(cin,line)) { for(int k=0; k<line.length(); k++) { if(isalpha(line[k])||line[k]==39||line[k]==45) continue; else line[k]=' '; } stringstream ss(line); while(ss>>simplewords) { for(int i=0; i<simplewords.size(); i++) { if(isalpha(simplewords[i])) simplewords[i]=tolower(simplewords[i]); } if(m.count(simplewords)) {cout<<m[simplewords]<<endl;break;} } } return 0;}
阅读全文
0 0
- COJ: Languages(字符串处理、map映射)
- map映射 【字符串&整型】
- Hiberante动态处理(MAP映射)
- 10887 - Concatenation of Languages(****)字符串的哈希函数处理
- POJ: Surprising Strings(map、字符串处理)
- POJ3297+map字符串处理
- Soundex(map映射)
- HDU1075-字符串映射-字典树&map
- hdu 4034 预处理+map映射字符串
- 杭电 字符串处理 map
- COJ 1285 STL中的map每日三水(无限个输入按哪个快捷键得输出)
- CodeForces 4C Registration system(字符串处理 | map)
- POJ 2503(简单map,字符串的处理)
- CSU 1826 Languages map和stringstream
- Languages
- 映射map
- Map----映射
- map 映射
- tcp连接
- codeforces GYM 101431B (后缀数据结构)
- PLSQL Developer图形化窗口创建数据库全过程
- 三层架构 和 MVC的联系与区分
- 使用简单工厂模式和反射机制优化MVP数据绑定流程
- COJ: Languages(字符串处理、map映射)
- HDU 2009
- ZOJ 3802 Easy 2048 Again(状压DP+位运算)【一维状压类模板--2048】
- 【九度OJ-1172】 哈夫曼数
- 设计模式(10)--外观模式
- 多态,final,抽象类
- c语言printf函数的使用详解
- JS基础三
- Js递归方法解决兔子问题