【PAT甲级 - C++题解】1092 To Buy or Not to Buy

news2024/9/22 23:25:40

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:PAT题解集合
📝原题地址:题目详情 - 1092 To Buy or Not to Buy (pintia.cn)
🔑中文翻译:买还是不买
📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

1092 To Buy or Not to Buy

Eva would like to make a string of beads with her favorite colors so she went to a small shop to buy some beads. There were many colorful strings of beads. However the owner of the shop would only sell the strings in whole pieces. Hence Eva must check whether a string in the shop contains all the beads she needs. She now comes to you for help: if the answer is Yes, please tell her the number of extra beads she has to buy; or if the answer is No, please tell her the number of beads missing from the string.

For the sake of simplicity, let’s use the characters in the ranges [0-9], [a-z], and [A-Z] to represent the colors. For example, the 3rd string in Figure 1 is the one that Eva would like to make. Then the 1st string is okay since it contains all the necessary beads with 8 extra ones; yet the 2nd one is not since there is no black bead and one less red bead.
在这里插入图片描述
Figure 1

Input Specification:

Each input file contains one test case. Each case gives in two lines the strings of no more than 1000 beads which belong to the shop owner and Eva, respectively.

Output Specification:

For each test case, print your answer in one line. If the answer is Yes, then also output the number of extra beads Eva has to buy; or if the answer is No, then also output the number of beads missing from the string. There must be exactly 1 space between the answer and the number.

Sample Input 1:

ppRYYGrrYBR2258
YrR8RrY

Sample Output 1:

Yes 8

Sample Input 2:

ppRYYGrrYB225
YrR8RrY

Sample Output 2:

No 2

题意

给定一个源串和一个目标串,判断目标串中的字符是否都能在源串中找到,如果都能找到则输出 Yes 并接着输出源串中多余的字符数量,否则输出 No 并接着输出目标串中缺少的字符数量。

思路

思路如下:

  1. 输入源串和目标串,并用哈希表来存储两个字符串中字符相差的数量,源串中的每个字符在哈希表中数量增加,而目标串中的每个字符在哈希表中数量减少。
  2. 计算给定字符串中多余字符以及缺少字符的数量,如果哈希表对应的字符数量是正数,则说明该字符在源串中是多余的;如果是负数,则说明该字符在源串中是缺少的。
  3. 如果缺少字符的数量大于 0 ,则输出 No 以及缺少字符数量;反之,输出 Yes 以及多余字符数量。

代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
    //输入源串和目标串
    string a, b;
    cin >> a >> b;

    //统计源串和目标串的各颜色数量
    unordered_map<char, int> cnt;
    for (auto& s : a)  cnt[s]++;
    for (auto& p : b)  cnt[p]--;

    //计算多余或缺少的颜色数量
    int ns = 0, np = 0;
    for (auto& n : cnt)
    {
        if (n.second > 0)  ns += n.second;
        else np -= n.second;
    }

    //输出统计结果
    if (np)  cout << "No " << np << endl;
    else    cout << "Yes " << ns << endl;

    return 0;
}

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

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

相关文章

JAVA中的运算符-关系运算符

文章目录0 写在前面1 关系运算符说明2 举例3 写在最后0 写在前面 JAVA包含丰富的关系运算符&#xff0c;这些关系运算符最终结果一定是boolean类型。即两个结果&#xff1a;true false 1 关系运算符说明 符号说明ab,判断a和b的值是否相等&#xff0c;成立为true&#xff0c;…

游戏开发48课 性能优化6

3.7.2 算法优化 思路是找出最耗CPU的算法或逻辑&#xff0c;优化之。 空间换时间。利用预排序/预处理/缓存/动态规划等等思路换取CPU的性能。选取更快的算法。属于数据结构和算法的范畴&#xff0c;思路是将O(n2)降低成O(n)或O(logn)&#xff0c;具体可以参看《算法导论》《游…

springcloud 服务消费及熔断

目录 1. 服务消费方式 1.1 RestTemplate 1.2 feign 2. 服务熔断&#xff08;降级&#xff09; 2.1 在微服务架构中服务熔断的必要性 2.2 hystrix 1. 服务消费方式 1.1 RestTemplate 传统情况下在java代码里访问restful服务&#xff0c;一般使用Apache的HttpClient。不过…

PMP内容2

PMP内容2目录概述需求&#xff1a;实现思路分析1.沟通管理2.监督沟通&#xff1a;3.风险管理4.5.实施采购控制采购相关方管理&#xff1a;相关方Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make …

JavaWeb语法一:进程和线程的区别与联系

目录 1.进程的概念 1.1&#xff1a;进程控制块抽象&#xff08;PCB&#xff09; 1.2&#xff1a;进程调度的相关属性 1.2.1&#xff1a;进程的状态 1.2.2&#xff1a;优先级 1.2.3&#xff1a;上下文 1.2.4&#xff1a;记账信息 2&#xff1a;进程的虚拟地址空间 3.线程…

算法与数据结构29:四边形不等式技巧

四边形不等式技巧题目一题目二题目三四边形不等式技巧题目四题目五题目一 给定一个非负数组arr&#xff0c;长度为N&#xff0c; 那么有N-1种方案可以把arr切成左右两部分 每一种方案都有&#xff0c;min{左部分累加和&#xff0c;有部分累加和} 求这么多方案中&#xff0c;mi…

我当PM,把ChatGPT玩冒(bà)烟(gōng)了

最近ChatGPT太火&#xff0c;本拐也注册了一个。用着确实是十分上头。而且事实证明&#xff0c;在处理明确的工程类业务时&#xff0c;ChatGPT可以让程序员事倍功半&#xff08;也有可能饭碗不保&#x1f648;&#xff09;参见&#xff1a; 跟着ChatGPT手把实现一个websocket连…

数据管理 Valentina Studio Pro 12.6 Crack

Valentina Studio 被描述为与 MySQL、SQL Server、Maria DB、SQLite、PostgreSQL 以及最后但并非最不重要的 Valentina DB 数据库一起用于工作流程的数据库工具的通用管理。Valentina Studio 能够允许用户和开发人员连接所有重要的数据库并运行查询&#xff0c;以及创建图表以了…

Hadoop如何保证自己的江湖地位?Yarn功不可没

前言 任何计算任务的运行都离不开计算资源&#xff0c;比如CPU、内存等&#xff0c;那么如何对于计算资源的管理调度就成为了一个重点。大数据领域中的Hadoop之所以一家独大&#xff0c;深受市场的欢迎&#xff0c;和他们设计了一个通用的资源管理调度平台Yarn密不可分&#x…

高性能缓存Caffeine的基本使用方式

文章目录介绍性能比对使用方式一、Population&#xff08;缓存类型&#xff09;1.Cache2.Loading3.Asynchronous (Manual)4.Asynchronously Loading二、Eviction&#xff08;驱除策略&#xff09;1.Size-based&#xff08;基于容量&#xff09;2.Time-based&#xff08;基于时间…

Redis Cluster 单机部署

高可用架构-Redis Cluster Redis服务器支持单机、主从复制、Sentinel、集群部署&#xff0c;部署架构也是由简单到复杂&#xff0c;Redis Cluster 集群架构是官方推荐应对大数据量、大并发场景部署方案。Redis的架构变迁如下图所示&#xff0c;其归属就是Redis Cluster Redis …

一款功能强大的课程报名系统 v6.2.0

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 课程报名系统可为专为教育培训机构设计的在线选课报名系统&#xff0c;学员可综合考虑课程分类、适合人群、上课地点、上课时间、课程价格等多种选报最合适的班级 课程报名系统发布v6.2…

组件库技术选型和开发环境搭建

点击上方卡片“前端司南”关注我您的关注意义重大原创前端司南本文为稀土掘金技术社区首发签约文章&#xff0c;14天内禁止转载&#xff0c;14天后未获授权禁止转载&#xff0c;侵权必究&#xff01;专栏上篇文章传送门&#xff1a;基于Vite打造业务组件库&#xff08;开篇介绍…

盘点和总结秒杀服务的功能设计及注意事项技术体系

秒杀应该考虑哪些问题 超卖问题 分析秒杀的业务场景&#xff0c;最重要的有一点就是超卖问题&#xff0c;假如备货只有100个&#xff0c;但是最终超卖了200&#xff0c;一般来讲秒杀系统的价格都比较低&#xff0c;如果超卖将严重影响公司的财产利益&#xff0c;因此首当其冲…

0代码20min |微信接入chat-GPT

0代码20min | 微信接入chat-GPT 拥有一个openai账号 这个账号比较麻烦&#xff0c;需要国外手机号认证&#xff0c;这个的话可以直接参考这篇文章ChatGPT注册攻略 - 知乎 (zhihu.com)&#xff0c;这篇文章是用在线接受短信的虚拟号码 - SMS-Activate这个网站来注册账号的。 用…

《操作系统》期末考试试卷2参考答案

《操作系统》期末考试卷&#xff08;第2套&#xff09; 参考答案与评分标准 一、单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共30分&#xff09; 题 号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答 案 D A C C B A D D A B D C A B D 二、填空题&#xff08;…

ADI Blackfin DSP处理器-BF533的开发详解31:汉字/ASIC II 字库(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了汉字库和 ASIC II 码 字库的功能&#xff0c;代码会在编译时&#xff0c;将字库文件加载到内存中&#xff0c;所以必须使用 …

软件测试基础篇(6)

两个测试模型: 一:软件测试V模型:从上到下是一个开发模型&#xff0c;从下到上是一个测试模型(V模型也是瀑布模型的一个变种) 需求分析--->计划---->设计---->编码----->测试 用户需求 验收测试需求分析与…

java基于springboot的共享单车系统-计算机毕业设计

项目介绍 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Ma…

合并有序数组

目录 I.合并有序数组 Time Limit:1s Memory Limit: 256M Description: Input: Output: Sample input: Sample output: 约束&#xff1a; 思路代码: 1.暴力法 1.2暴力代码: 2.双指针(归并排序思路) 2.2双指针代码 总结: 题目链接: I.合并有序数组 Time Limit:1s Me…