1039 到底买不买(pat乙级、C++)

题目

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

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

输入格式:

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

输出格式:

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

输入样例 1:

ppRYYGrrYBR2258 YrR8RrY

输出样例 1:

Yes 8

输入样例 2:

ppRYYGrrYB225
YrR8RrY

输出样例 2:

No 2

分析

设摊主的珠串为s1,小红想做的珠串为s2.

  1. 本题实际是要我们比对s1和s2中相同字符的个数
  2. 使用2个长度为123('z’的ASCII码+1)count、count2分别来存储s1各个字符的个数和s2各个字符的个数,用变量diff记录两者相同字符个数之差,用变量sum来记录总的缺多少。
  3. 如果count2[i]>count[i],把diff累加到sum里。同时用一个变量flag来记录珠子多余还是缺。

AC代码

#include<iostream>
#include<string>
using namespace std;
int main()
{string s1,s2,flag="Yes";int i,count[123]= {0},count2[123]={0},diff[123]={0};cin>>s1>>s2;for(i=0; i<s1.length(); i++){count[s1[i]]++;}for(i=0; i<s2.length(); i++){count2[s2[i]]++;}int sum=0;for(i=0; i<123; i++){if(count2[i]>count[i]){flag="No";diff[i]=count2[i]-count[i];sum=sum+diff[i];}}if(flag=="Yes"){cout<<flag<<" "<<s1.length()-s2.length();}else{cout<<flag<<" "<<sum;}return 0;}

更多题解
pat 乙级(Basic Level) 题解汇总(持续更新)(C++)

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

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

相关文章

使用Selenium Webdriver进行全屏截图

在任何网页测试人员中&#xff0c;执行效果最好的操作之一就是对网页进行截图。 每当测试人员发现并报告错误时&#xff0c;如果不支持该问题的屏幕截图甚至视频&#xff0c;就不会认真对待该错误。 不论您进行的测试类型是什么&#xff0c;包括硒自动化测试&#xff0c;都是如…

c++中 int, long long, double 等数据类型的长度及范围整理

先附上一个比较直观的表&#xff0c;长度表示字节: byte: 字节 bit: 位 1. 短整型short&#xff1a; 所占内存大小&#xff1a;2byte16bit&#xff1b; 所能表示范围&#xff1a;-32768~32767&#xff1b;(即-2^15~2^15-1) 2. 整型int&#xff1a; 所占内存大小&#xff1a;4…

硒等待:内隐,外显,流利和睡眠

Selenium等待页面加载在Selenium脚本中起着重要的作用。 它们有助于使它们不易剥落&#xff0c;更可靠。 Selenium提供多次等待&#xff0c;以根据某些条件在脚本执行中提供足够的等待或暂停。 从而确保您在使用Selenium执行自动化测试时不会导致脚本失败。 在本教程中&#xf…

在win10+Ubuntu双系统下,完美卸载Ubuntu

本文为转载博客&#xff0c;亲测有效 背景 机器&#xff1a;惠普 暗影精灵3 win10与Ubuntu16.04均为UEFI分区 清除ubuntu系统 使用软件&#xff1a;diskgenius   删除Ubuntu系统使用的几个分区&#xff08;包括EFI分区&#xff09;&#xff0c;注意不要删除Windows的EFI分…

在浏览器中在线尝试无服务器框架项目!

无服务器框架是无服务器工具的一致领导者。 但是&#xff0c;没有简单的方法可以在线试用无服务器框架项目。 您确实需要一个体面的开发人员设置&#xff0c;并且需要一些工作来设置sls &#xff0c; npm等。 确切地说&#xff0c;您做到了 –直到现在。 无服务器项目–在您的…

java se/ee_嗨,您好 。 。 ! 您如何评价Java / Java EE技能?

java se/ee要知道&#xff0c;就是要知道你一无所知。 那就是真正知识的含义。 苏格拉底 这篇文章旨在为读者提供Java生态系统及其技术堆栈的快速概述。 老实说&#xff0c;从Java EE 7&#xff0c;Java SE 8到Java Embedded 8…&#xff0c;Java平台进行了许多革命性的更改…

SystemC在Ubuntu16.04上安装测试

使用SystemC进行硬件仿真 环境 linux-x86-64bashg 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc-2.3.3.tar.gz 进入解压出来的目录&#xff0c;准备编译安装 cd systemc-2.3.3 编译安装 打开安装说明文件INSTALL vim INSTALL 按照步骤安装 Create a tem…

ubuntu16.04下安装ibus拼音

按照网上给的安装方法&#xff0c;没成功&#xff0c;在切换ibus的时候总是报错&#xff0c;记录下解决办法。 安装语言包 System Settings–>Language Support–>Install/Remove Languages 选中chinese&#xff0c;点击Apply应用即可&#xff0c;等待下载安装完成。 …

解决Ubuntu中sublime无法输入中文的问题

主要目的&#xff1a; 安装 Sublime Text 3 安装 Fcitx 输入法 皮肤 修复 Sublime Text 3 在 Ubuntu(Debian) 系统下的无法输入中文(CJK 字符)输入法的问题 注意&#xff1a; 这个修复仅当在终端中使用 subl . 调用 Sublime Text 的时有效, 具体原因请看源代码src/s…

【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细

一、基本配置 开发环境&#xff1a;ubuntu16.04 二、准备工作 下载 搜狗输入法linux版 搜狗输入法官网Linux版 我这里是64位的&#xff0c;所以选择64位 1、拷贝搜狗输入法到ubuntu cp /media/sf_share/6q/sogoupinyin_2.3.1.0112_amd64.deb . 2、安装搜狗输入法 首次安装会报…

使用xshell上传本地文件到服务器

1.查看linux上是否安装rz工具 2&#xff0c;查看安装是否完成&#xff0c;然后上传文件到服务器

Dev-C++ 一直提示源文件未编译,原因及解决办法

原因 编译命令换行&#xff08;可能有的同学和我一样喜欢换行写&#xff09;&#xff0c;导致编译通不过&#xff0c;如果选择编译运行&#xff0c;便会提示"源文件未编译"。 如图 解决办法 这种写法不对&#xff0c;正确如下&#xff08;两个命令间有一个空格&…

for循环简介及实例(输出九九乘法表)

for循环简介 简介 for循环是3大循环其中一种&#xff0c;相比while循环和do while循环&#xff0c;它更加灵活&#xff0c;而且完全包含了while循环的功能&#xff0c;用for语句可以解决编程中所有循环问题。 语法格式 for(语句1;表达式1;表达式2) 语句 //语句1一般用于设置…

Windows下使用net user命令管理账户

准备工作-以管理员身份运行命令提示符&#xff08;cmd&#xff09; 鼠标左键单击Windos标志或者按下键盘Windows键&#xff0c;下滑菜单&#xff0c;在Windows系统 中找到命令提示符。 2.右键&#xff0c;更多->以管理员身份运行 net user 命令用法 1.查看所有用户 net…

Java中带有NetSuite数据实体的对象关系映射(ORM)

对象关系映射&#xff08;ORM&#xff09;技术使使用关系数据源更容易&#xff0c;并且可以将逻辑业务模型与物理存储模型联系在一起。 遵循本教程&#xff0c;将与NetSuite数据的连接集成到基于Java的ORM框架Hibernate中。 您可以使用Hibernate将面向对象的域模型映射到传统的…

vmware中ubuntu虚拟机扩容

两种扩容方式&#xff1a; 重新创建一块虚拟硬盘 扩大原来的硬盘&#xff1a;如果装系统时没有进行手动分区&#xff0c;系统只有两个分区&#xff08;根分区和交换分区&#xff09;&#xff0c;这种情况我们直接扩展根分区的大小。 我们是为了解决当前用户空间不够的问题&…

该虚拟机似乎正在使用

该虚拟机似乎正在使用 点击获取所有权&#xff0c;此时虚拟机还是不能打开。 打开Vmware虚拟机虚拟磁盘文件和配置文件存放的位置 删除后缀为.lck的文件夹 然后开启此虚拟机就可以啦

Wireshark常用过滤使用方法

过滤源ip、目的ip。 在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包&#xff0c;ip.dst192.168.101.8&#xff1b;查找源地址为ip.src1.1.1.1 端口过滤。 如过滤80端口&#xff0c;在Filter中输入&#xff0c;tcp.port80&#xff0c;这条规…

【C】printf按8进制、10进制、16进制输出以及高位补0

#include <iostream> #include <iomanip> #include "Circle.h" // Circle class declaration file int main() { int PrintVal 9;/*按整型输出&#xff0c;默认右对齐*/printf("%d\n",PrintVal);/*按整型输出&#xff0c;补齐4位的宽度&#…

带有Spring Boot和Spring Cloud的Java微服务

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 Java是开发微服务架构时使用的一种很棒的语言。 实际上&#xff0c;我们行业中的一些知名人士…