【UVA】12504 Updating a Dictionary(STL)
2024-09-27 13:54:43
题目
分析
第一次用stringstream,真TMD的好用
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
getchar();//回车
while(n--)
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
for(int i=0;i<s1.length();i++)
if(!isalpha(s1[i]) && !isdigit(s1[i])) s1[i]=' ';
for(int i=0;i<s2.length();i++)
if(!isalpha(s2[i]) && !isdigit(s2[i])) s2[i]=' ';
int l1=0,l2=0;
map<string,string> m;
map<string,string>::iterator it;
vector<string> c,d,e;
stringstream ss(s1),ss2(s2);
string a,b;
while(ss>>a)
{
ss>>b; m[a]=b; l1++;
}
while(ss2>>a)
{
ss2>>b; l2++;
if(!m.count(a)) c.push_back(a);
else if(m[a]!=b) d.push_back(a);
if(m.count(a))
{
it=m.find(a);
m.erase(it);
}
}
sort(d.begin(),d.end());
sort(c.begin(),c.end());
if(c.size())
{
cout<<"+";
for(int i=0;i<c.size();i++)
{
cout<<c[i];
if(i==c.size()-1) cout<<endl;
else cout<<",";
}
}
if(m.size())
{
cout<<"-";
for(map<string,string>::iterator i=m.begin();i!=m.end();i++)
{
if(i!=m.begin()) cout<<',';
cout<<i->first;
}
cout<<endl;
}
if(d.size())
{
cout<<"*";
for(int i=0;i<d.size();i++)
{
cout<<d[i];
if(i==d.size()-1) cout<<endl;
else cout<<',';
}
}
if(!c.size()&&!d.size()&&!m.size()) puts("No changes");
cout<<endl;
}
return 0;
}
最新文章
- 理解CSS前景色和透明度
- 第五章 搭建S3C6410开发板的测试环境
- cannot simultaneously fetch multiple bags
- 一起买beta版PHP单元测试
- 使用log4net
- VS2012发布网站详细步骤
- S5PV210之添加缺少的-内核提供的&#39;.h&#39;文件 linux3.0.8驱动
- PHP.11-PHP实例(二)-面向对象实例(图形计算器)
- samba服务器详细配置(非域模式)
- Apache Lucene
- BZOJ_3747_[POI2015]Kinoman_线段树
- tiny6410 启动参数
- boost库中的 program_options
- Google SketchUp Cookbook: (Chapter 3) Intersection Edges: Cutting and Trimming
- javascript日期格式yyyyMMddHHmmss
- js 的深拷贝
- 国内CDN加速现状
- USACO 1.2.2 Transformations 方块转换
- 使用java中的注解@see
- NB-IOT连接移动onenet平台流程