【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++

2023-12-31 21:32

本文主要是介绍【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

给两个字符串,一个是卖的,一个是想买的。

你需要统计一下,看是不是卖的包含想买的

  • 如果包含,则YES,并输出多余的个数。
  • 如果不包含,则No,并输出缺少的个数。

在这里插入图片描述

思路

维护两个数组,分别是已经有的数量have[]、想要的数量want[]

  • 数组的大小 等于面包的个数
  • 数组下标 表示面包的颜色
  • 数组中存放的数 表示面包的数量

计算差值,判断是否购买即可
在这里插入图片描述

题解 C++
#include<iostream>
#include<string>
#include<algorithm>using namespace std;
int main() {int have[10 + 26 + 26] = { 0 };int want[10 + 26 + 26] = { 0 };string haveStr;string wantStr;cin >> haveStr >> wantStr;//统计已有for (int i = 0; i < haveStr.length(); i++) {if (haveStr[i] >= '0'&&haveStr[i] <= '9') {have[haveStr[i] - '0']++;}else if (haveStr[i] >= 'a'&&haveStr[i] <= 'z') {have[haveStr[i] - 'a' + 10]++;}else if (haveStr[i] >= 'A'&&haveStr[i] <= 'Z') {have[haveStr[i] - 'A' + 10 + 26]++;}}//统计想要for (int i = 0; i < wantStr.length(); i++) {if (wantStr[i] >= '0'&&wantStr[i] <= '9') {want[wantStr[i] - '0']++;}else if (wantStr[i] >= 'a'&&wantStr[i] <= 'z') {want[wantStr[i] - 'a' + 10]++;}else if (wantStr[i] >= 'A'&&wantStr[i] <= 'Z') {want[wantStr[i] - 'A' + 10 + 26]++;}}//计算差值int more = 0;int less = 0;bool buy = true;for (int i = 0; i < 10 + 26 + 26; i++) {if (have[i] >= want[i]) {//足够more += (have[i] - want[i]);}else {//不足less += (want[i] - have[i]);buy = false;}}//输出if (buy) {cout << "Yes " << more;}else {cout << "No " << less;}system("pause");
}

在这里插入图片描述

这篇关于【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/557182

相关文章

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的