12504 - Updating a Dictionary (UVA)

题目链接如下:

Online Judge

我的代码如下:

#include <string>
#include <iostream>
#include <map>
#include <set>
// #define debugint T, loc1, loc2;
std::string s, key, value;
char ch[] = "+-*";int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifscanf("%d\n", &T);while (T--){std::map<std::string, std::string> mp[2];std::set<std::string> keys[3];for (int i = 0; i < 2; ++i){getline(std::cin, s);s = s.substr(1);s.back() = ',';while (s.find(":") != std::string::npos){loc1 = s.find(":");key = s.substr(0, loc1);loc2 = s.find(",");value = s.substr(loc1 + 1, loc2 - loc1 - 1);s = s.substr(loc2 + 1);mp[i][key] = value;}}for (auto it = mp[0].begin(); it != mp[0].end(); ++it){if (!mp[1].count(it->first)){keys[1].insert(it->first);} else if (it->second != mp[1][it->first]){keys[2].insert(it->first);}}for (auto it = mp[1].begin(); it != mp[1].end(); ++it){if (!mp[0].count(it->first)){keys[0].insert(it->first);}}for (int i = 0; i < 3; ++i){if (!keys[i].empty()){for (auto it = keys[i].begin(); it != keys[i].end(); ++it){printf("%c%s", it == keys[i].begin() ? ch[i] : ',', (*it).c_str());}printf("\n");}}if (keys[0].empty() && keys[1].empty() && keys[2].empty()){printf("No changes\n");}printf("\n");}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}

看到网上说双指针做,于是又改了一下:

#include <string>
#include <iostream>
#include <map>
#include <set>
// #define debugint T, loc1, loc2;
std::string s, key, value;
char ch[] = "+-*";int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifscanf("%d\n", &T);while (T--){std::map<std::string, std::string> mp[2];std::set<std::string> keys[3];for (int i = 0; i < 2; ++i){getline(std::cin, s);s = s.substr(1);s.back() = ',';while (s.find(":") != std::string::npos){loc1 = s.find(":");key = s.substr(0, loc1);loc2 = s.find(",");value = s.substr(loc1 + 1, loc2 - loc1 - 1);s = s.substr(loc2 + 1);mp[i][key] = value;}}auto it1 = mp[0].begin();auto it2 = mp[1].begin();while (it1 != mp[0].end() && it2 != mp[1].end()){if (it1->first < it2->first){keys[1].insert(it1->first);++it1;} else if (it1->first > it2->first){keys[0].insert(it2->first);++it2;} else {if (it1->second != it2->second){keys[2].insert(it1->first);}++it1;++it2;}}for (; it1 != mp[0].end(); ++it1){keys[1].insert(it1->first);}for (; it2 != mp[1].end(); ++it2){keys[0].insert(it2->first);}for (int i = 0; i < 3; ++i){if (!keys[i].empty()){for (auto it = keys[i].begin(); it != keys[i].end(); ++it){printf("%c%s", it == keys[i].begin() ? ch[i] : ',', (*it).c_str());}printf("\n");}}if (keys[0].empty() && keys[1].empty() && keys[2].empty()){printf("No changes\n");}printf("\n");}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 中 initcall 机制详解

源码基于&#xff1a;Linux 5.4 0. 前言 Linux 对驱动程序提供静态编译进内核和动态加载两种方式&#xff0c;当采用静态方式时&#xff0c;开发者如果想要在系统中启动这个驱动通常调用类似 xxx_init() 接口。 最直观的做法&#xff1a;开发者试图添加一个驱动初始化程序时&…

【Python入门二】安装第三方库(包)

安装第三方库/包 1 使用pip安装2 使用PyCharm软件安装3 离线安装&#xff0c;使用whl文件安装参考 在Python中&#xff0c;有多种安装第三方库的方法&#xff0c;下面是一些常用的方法&#xff1a; 1 使用pip安装 pip是Python中最常用的包管理工具&#xff0c;也是最常用的在线…

电商中的百万量级

背景 我们一般在设计app架构或者访问量评估时&#xff0c;特别是在小公司时&#xff0c;老板总是希望我们能支持百万级的访问量&#xff0c;但是实际我们真的需要这么多吗&#xff0c;你知道百万访问的概念是多大吗 支持百万级 一般来说&#xff0c;百万级的页面访问也就意味…

代码随想录 Day35 动态规划04 01背包问题和完全背包问题 LeetCode T416 分割等和子集

背包问题 说到背包问题大家都会想到使用动规的方式来求解,那么为什么用动规呢,dp数组代表什么呢?初始化是什么,遍历方式又是什么,这篇文章笔者将详细讲解背包问题的经典例题0-1背包问题和完全背包问题的解题方式,希望能帮助到大家 1.暴力方式 有人一提到背包问题就只会使用动态…

OpenGL ES入门教程(一)编写第一个OpenGL程序

OpenGL ES入门教程&#xff08;一&#xff09;编写第一个OpenGL程序 前言 从本文开始我将参考学习OpenGL ES应用开发实践指南 Android卷 [&#xff08;美&#xff09;KevinBrothaler著]&#xff08;提取码: 394m&#xff09;&#xff0c;并基于自己的理解以更加通俗易懂的方式…

近独立粒子的最概然分布

近独立粒子&#xff1a;粒子之间相互作用微弱基本粒子中&#xff0c;自旋量子数为半整数的有 电子 、 质子 、中子、中微子自旋量子数为整数的有 光子、pi介子 经典力学描述系统的微观运动状态 经典力学中&#xff0c;全同粒子可以分辨量子力学&#xff0c;全同粒子不可以分辨微…

2023-11-02 LeetCode每日一题(环和杆)

2023-11-02每日一题 一、题目编号 2103. 环和杆二、题目链接 点击跳转到题目位置 三、题目描述 总计有 n 个环&#xff0c;环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings &#xff0c;表示这 n 个环在…

BetterDisplay Pro v1.4.15(显示器管理管理软件)

BetterDisplay Pro是一款屏幕显示优化工具&#xff0c;可用于Windows和Mac操作系统。它可以帮助用户调整屏幕的亮度、对比度、色彩等参数&#xff0c;以获得更好的视觉体验。此外&#xff0c;BetterDisplay Pro还提供了一些额外的功能&#xff0c;如屏幕分割、窗口管理、快捷键…

Django3框架-(3)-[使用websocket]:使用channels实现websocket功能;简化的配置和实际使用方式

概述&#xff1a; 对于Django使用channels实现websocket的功能&#xff0c;之前就写了几篇博文了。随着在项目的使用和实际维护来说&#xff0c;重新设置了相关处理方法。 一般来说&#xff0c;前后端都只维护一个全局的连接&#xff0c;通过携带数据来判断具体的操作&#x…

Flink1.18新特性生产环境应用的重点解读!

大家好&#xff0c;我是你们的群主王知无呀。 Flink 1.18已经于近期发布了。在这个新版本中新增了很多新的功能和特性。在这些特性中&#xff0c;有一些是生产环境非常重要的能力&#xff0c;大家在使用过程中可以重点参考和了解其中的原理。 算子级别状态保留时间TTL设置 首先…

GitHub经常打不开或者访问解决办法

访问慢或无法访问的原因&#xff1a;DNS解析是最为基础的一个环节。由于Github的服务器在全球各地&#xff0c;域名解析所需的时间也会不同&#xff0c;这就导致了在特定地区可能会出现Github无法正常访问的情况。 解决&#xff1a;查询到github对应的IP&#xff0c;然后在host…

精准测试:提高软件质量和用户满意度的利器

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

Oracle数据库中的table@xyz是什么意思?

是DBlink访问外部表的语法。xyz是其他Oracle数据库在你所登录的用户下建立的Dblink名。通过这种方式访问其他数据库中的表。 在Oracle数据库中&#xff0c;表名后跟着符号和一个连接字符串&#xff08;xyz&#xff09;是一种用法&#xff0c;它用于指定要访问的远程数据库。 …

腾讯云域名备案后,如何解析到华为云服务器Linux宝塔面板

一、购买域名并且进行备案和解析&#xff0c;正常情况下&#xff0c;购买完域名&#xff0c;如果找不到去哪备案&#xff0c;可以在腾讯云上搜索“备案”关键词就会出现了&#xff0c;所以这里不做详细介绍&#xff0c;直接进行步骤提示&#xff1a; 二、申请ssl证书&#xff0…

uniapp使用抖音微信自定义组件

tt.vue中使用video-player组件 用到的目录如下&#xff1a; pages.json {"path": "pages/Tabbar/tt/tt","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,// 使用自定义组件"using…

ST7789LCD调试笔记

1.采用4线模式SPI GND&#xff1a;接地引脚VCC&#xff1a;接电源引脚&#xff0c;接3.3V直流电源即可SCL&#xff1a;SPI的时钟线SCLKSDA&#xff1a;SPI的数据输入SDO: SPI的数据输出RES&#xff1a;复位接口&#xff0c;低电平初始化&#xff08;复位&#xff09;&#xff…

Nginx服务器安装证书并启用SSL(acme.sh)

前提 您已购置vps服务器&#xff0c;例如阿里云全球站ecs、AWS EC2、Azure VM、GCP Compute等安全组已开启80、443端口&#xff0c;且访问源设置为0.0.0.0/0域名已设置A记录指向当前操作服务器&#xff0c;若您使用aws ec2&#xff0c;有公有 IPv4 DNS&#xff0c;可供使用 安…

03.从简单的sql开始

从简单的sql开始 一、sql语句的种类二、oracle的工作原理三、oracle数据库常见基础命令 一、sql语句的种类 下面是SQL语句的分类、常用语句、使用方法&#xff1a; 分类语句使用方法解释数据查询SELECTSELECT column1, column2, … FROM table_name WHERE condition;用于从表…

2023年最新版潮乎盲盒源码含搭建教程

后台开发语言&#xff1a;后端 Laravel 框架开发 前端开发框架&#xff1a;uniappvue 环境配置: php7.4 mysql5.6 nginx1.22 redis&#xff08;建议宝塔面板或 lnmp&#xff09; 源码获取请自行百度&#xff1a;一生相随博客 一生相随博客致力于分享全网优质资源&#x…

Python条件判断的运用

问题 在生活中&#xff0c;我们可以通过判断条件是否成立&#xff0c;来决定执行哪个分支。选择语句有多种形式&#xff1a;if语句&#xff0c;if-else语句&#xff0c;if-elif-else语句等。 Python使用if条件判断语句来实现条件判断时&#xff0c;可以在多个循环中实现对问题的…