小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。

为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。

图 1
输入格式

每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。

输出格式

如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。

输入样例1:
ppRYYGrrYBR2258
YrR8RrY
输出样例1:
Yes 8
输入样例2:
ppRYYGrrYB225
YrR8RrY
输出样例2:
No 2

解题思路

利用负数记少的,正数则为多的。
map第一个标记珠子,第二个元素记录珠子的个数。

一个是自己需要的,一个是shop中的。

需求相减,如果全为正,则YES,输出所有正数的总和。

如果有负,则NO,输出所有负数的总和。

#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){map<char,int> shop,my;string tmp;cin>>tmp;for(int i=0;i<tmp.size();i++){shop[tmp[i]]++;}cin>>tmp;for(int i=0;i<tmp.size();i++){my[tmp[i]]++;}for(map<char,int>::iterator i=my.begin();i!=my.end();i++){shop[i->first]-=i->second;}int sumfu=0,sumzheng=0;for(map<char,int>::iterator i=shop.begin();i!=shop.end();i++){if(i->second<0){sumfu+=i->second;}sumzheng+=i->second;}if(sumfu<0){cout<<"No "<<-1*sumfu;}else{cout<<"Yes "<<sumzheng;}
}

算法学习之路|到底买不买相关推荐

  1. 巩朋:我的算法学习之路

    转自:http://blog.jobbole.com/67348/ 巩朋:我的算法学习之路 分享到: 232 MVC架构模式分析与设计 Linux Guide for Developers 网页广告特 ...

  2. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  3. 算法学习之路和程序员(技术)学习必读书籍

    原文链接:http://lucida.me/blog/on-learning-algorithms/ 转 算法学习之路和程序员(技术)学习必读书籍 2015年05月26日 09:46:56 阅读数:1 ...

  4. 完全背包问题贪心算法c语言,数据结构与算法学习之路:背包问题的贪心算法和动态规划算法...

    一.背包问题描述: 有N种物品和一个重量为M的背包,第i种物品的重量是w[i],价值是p[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包重量,且价值总和最大. 二.解决方法: 1.贪心算 ...

  5. 算法学习之路|幼儿园买玩具

    题目大意: 蒜厂幼儿园有 nn 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mm 个玩具.已知玩具商店一共卖 kk 种玩具,编号为 1,2 ...

  6. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》

    文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...

  7. 算法学习之路|最小生成树——prime算法

    摘要: 算法概述:对于一个带权的连通图,其顶点的集合 为V,边的集合为E.定义一个新的集合Vnew={空},第一步在图中任选一个顶点v加入Vnew,第二步寻找最短的边(u,v),其中u∈Vnew,v∈ ...

  8. 算法学习之路|最小生成树—kruskal

    算法概述:一个带权的连通图, 有V个点,E个边,去掉所有的边,得到一个新图,将E个边按权值从小到大排列,然后从权值最小的边<u,v>开始加入,重复下去,但每次加入之前要判断u,v是否连通, ...

  9. 算法学习之路|打印排名

    上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打印. 输 ...

  10. 算法学习之路2 质数问题

    前言 质数问题也算是入门的问题了,在CSDN竞赛第五期中,前2题也跟质数问题存在关系,看了大佬们的解答,我的解题方式算是暴力的了.只能达到启蒙的作用,要做好还是要多刷题. 概念法 质数又称素数.一个大 ...

最新文章

  1. SQL Server 2012 sa 用户登录 18456 错误
  2. Leveldb二三事
  3. gps导航原理与应用_一文读懂角速度传感器(陀螺仪)的应用场景
  4. 因为银行原因出现房贷逾期,怎么修复征信?
  5. nodejs简单层级结构配置文件
  6. 跌落式封隔器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. ntpwedit 提示密码未修改_关于开启密码控制策略所引发的一些问题
  8. 游戏是怎么赚钱的 - 科普篇
  9. 数据可视化:推荐6个数据可视化工具软件平台
  10. 人声歌姬语音合成器+72个歌手音源拓展 – YAMAHA Vocaloid 5 ESV 5.0.3 + LIBRARIES MacOS
  11. 层次、网状、关系模型
  12. hdwiki 附件上传大小设置
  13. 收藏CSDN上一篇文章--勉励自己
  14. src refspec master does not match any问题
  15. 对言语上的自律和真正的自律的一些想法
  16. Android加载百度地图
  17. 当ubuntu系统安装好或导入后ifconfig只显示lo的解决方法
  18. 计算机网络毕业论文搭建服务,网络搭建毕业论文
  19. Packet_Tracer
  20. dvorak在win 和Linux中文输入法的日常用法

热门文章

  1. Prezi 7 大图形设计技巧,让视觉思维落地生根
  2. 博文视点大讲堂第36期——让Oracle跑得更快(3大oracle ACE联合推荐)
  3. 优化理论18----Fritz John条件
  4. python批量获取图像路径txt
  5. boost安装_Boost编译与使用
  6. uiuc工程学院计算机,UIUC的ECE「伊利诺伊大学香槟分校电气与计算机工程系」
  7. L1-019 谁先倒 (15 分) — 团体程序设计天梯赛
  8. Linux环形工作队列KFIFO的使用说明
  9. 分享一个免杀的netcat.exe
  10. environment variable is too large 2047