【华为OD】B\C卷真题 100%通过:字符串统计 C/C++实现
目录
题目描述:
示例1
代码实现:
【华为OD】B\C卷真题 100%通过:字符串统计 C/C++实现
题目描述:
给定两个字符集合,一个为全量字符集,一个为已占用字符集。已占用的字符集中的字符不能再使用,要求输出剩余可用字符集。
输入描述
1、输入为一个字符串,一定包含@符号。@前的为全量字符集,@后的字为已占用字符集。
2、已占用字符集中的字符一定是全量字符集中的字符。字符集中的字符跟字符之间使用英文逗号分隔。
3、每个字符都表示为字符加数字的形式,用英文冒号分隔,比如a:1,表示1个a字符。
4、字符只考虑英文字母,区分大小写,数字只考虑正整形,数量不超过100。
5、如果一个字符都没被占用,@标识仍然存在,例如a:3,b:5,c:2@
输出描述
输出可用字符集,不同的输出字符集之间回车换行。
注意,输出的字符顺序要跟输入一致。不能输出b:3,a:2,c:2
如果某个字符已全被占用,不需要再输出。
示例1
输入输出示例仅供调试,后台判题数据一般不包含示例
输入
a:3,b:5,c:2@a:1,b:2
输出
a:2,b:3,c:2
说明
全量字符集为3个a,5个b,2个c。
已占用字符集为1个a,2个b。
由于已占用字符不能再使用,因此,剩余可用字符为2个a,3个b,2个c。
因此输出a:2,b:3,c:2
代码实现:
#include <string>
#include <map>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <vector>using namespace std;class SData {
public:char k;int cnt;int size;bool operator<(const SData &other) const {return size < other.size;}SData(char key = 0, int cnt = 0, int len = 0) : k(key), cnt(cnt), size(len) {}
};class Solution {public:Solution(const string &s) {int idx = s.find('@');if (idx == string::npos) {dealData(s, false);}else {dealData(s.substr(0, idx), false);dealData(s.substr(idx + 1), true);}vector<SData> tmp(m_data.size());m_vsd = tmp;for (auto &item : m_data) {m_vsd.push_back(item.second);}calc();}string out() const {return m_res;}
private:void calc() {sort(m_vsd.begin(), m_vsd.end());for (auto &e : m_vsd) {if (e.cnt > 0) {m_res.push_back(e.k);m_res.append(":").append(to_string(e.cnt)).append(",");}}m_res.pop_back();}void dealData(const string &s, bool fg) {if (s.empty()) {return;}istringstream ss(s);int size = 0, cnt;char k;while (ss >> k >> cnt) {if (fg) {m_data[k].cnt -= cnt;}else {m_data[k] = { k, cnt, size++ };}}}vector<SData> m_vsd;string m_res;map<char, SData> m_data;
};int main() {string lineStr;getline(cin, lineStr);replace_if(lineStr.begin(), lineStr.end(), [](char c) { return c == ':' || c == ','; }, ' ');Solution so(lineStr);cout << so.out() << endl;return 0;
}
相关文章:
【华为OD】B\C卷真题 100%通过:字符串统计 C/C++实现
目录 题目描述: 示例1 代码实现: 【华为OD】B\C卷真题 100%通过:字符串统计 C/C实现 题目描述: 给定两个字符集合,一个为全量字符集,一个为已占用字符集。已占用的字符集中的字符不能再使用,要求输出剩…...
SparkSession介绍
一、 介绍 SparkSession是Spark 2.0中引入的新概念,它是Spark SQL、DataFrame和Dataset API的入口点,是Spark编程的统一API,也可看作是读取数据的统一入口;它将以前的SparkContext、SQLContext和HiveContext组合在一起࿰…...
Error PostCSS plugin autoprefixer requires PostCSS 8
文章目录 一、情况一二、情况二三、总结 在启动 vue项目时,突然控制台报错: Error: PostCSS plugin autoprefixer requires PostCSS 8。然后依次出现下面几种情况,依次解决完,项目就可以正常启动了 一、情况一 error in ./src/…...
纵观手机市场,手机即鏖战全面屏
9月13日,在相继发布Apple TV、Apple Watch 和iPhone 8/8 Plus之后,当大家都以为苹果新品发布会临近结束之时,苹果前CEO史蒂夫乔布斯的这句经典名言再现屏幕,iPhone X终于揭开了神秘面纱。 “One more thing”。 9月13日ÿ…...
基于C#实现Dijkstra算法
或许在生活中,经常会碰到针对某一个问题,在众多的限制条件下,如何去寻找一个最优解?可能大家想到了很多诸如“线性规划”,“动态规划”这些经典策略,当然有的问题我们可以用贪心来寻求整体最优解࿰…...
【数据结构】树与二叉树(廿三):树和森林的遍历——层次遍历(LevelOrder)
文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法5.3.3 树和森林的遍历1. 先根遍历(递归、非递归)2. 后根遍历(递归、非递归)3. 森林的遍历4. 层次遍历a. 算法LevelOrderb. 算法解读c. 时间复杂度d.代码…...
常用连接池的使用(jdbc)java 连接数据库
C3P0 导入依赖 <!-- https://mvnrepository.com/artifact/c3p0/c3p0 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><!-- https://mvnrepository.c…...
linux嵌入式时区问题
目录 操作说明实验参考 最近有个针对时区的需求,研究了下。 查询网上的一些设置,发现基本都是系统中自带的一些文件,然后开机时解析,或者是有个修改的命令。 操作 但针对嵌入式常用到的 busybox 制作的最小系统,并没…...
Spring基于xml注入bean的几种方式; Spring 框架中都用到了哪些设计模式;Spring的自动装配
文章目录 Spring基于xml注入bean的几种方式:Spring的自动装配:在Spring框架xml配置中共有5种自动装配:基于注解的方式: Spring 框架中都用到了哪些设计模式? Spring基于xml注入bean的几种方式: ࿰…...
name 属性:提高 Vue 应用可维护性的关键
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
百战python04-循环结构
文章目录 趣味进度条:通过一个简单的进度条来进入循环的世界吧for-in循环语法内置函数range()练习:累和下面是使用for循环对字符串(第一个for)、range函数的循环取值示例for循环对字典、列表取值(后面会讲解字典,列表)while循环while循环实现猜数字小游戏结束循环的操…...
JVM字节码文件的相关概述解读
Java全能学习面试指南:https://javaxiaobear.cn 1、字节码文件 从下面这个图就可以看出,字节码文件是可以跨平台使用的 想要让一个Java程序正确地运行在JVM中,Java源码就必须要被编译为符合JVM规范的字节码。 https://docs.oracle.com/java…...
什么是轻量应用服务器?可以从亚马逊云科技的优势入手了解
什么是轻量应用服务器? 随着如今各行各业对云计算的需求越来越多,云服务器也被越来越多的企业所广泛采用。其中,轻量应用服务器是一种简单、高效、可靠的云计算服务,能够为开发人员、企业和个人提供轻量级的虚拟专用服务器&#x…...
HUAWEI华为MateBook X Pro 2022 12代酷睿版(MRGF-16)笔记本电脑原装出厂Windows11系统工厂模式含F10还原
链接:https://pan.baidu.com/s/1ZI5mR6SOgFzMljbMym7u3A?pwdl2cu 提取码:l2cu 华为原厂Windows11系统工厂包,带F10一键智能还原恢复功能。 自带指纹、面部识别、声卡、网卡、显卡、蓝牙等所有驱动、出厂主题壁纸、Office办公软件、华为…...
Vue3 响应式数据 reactive使用
ref 与 reactive 是 vue3 提供给我们用于创建响应式数据的两个方法。 reactive 常用于创建引用数据,例如:object、array 等。 reactive 则是通过 proxy 来实现的响应式数据,并配合 reflect 操作的源对象。 reactive 创建引用数据࿱…...
Kafka 如何实现顺序消息
版本说明 本文所有的讨论均在如下版本进行,其他版本可能会有所不同。 Kafka: 3.6.0Pulsar: 2.9.0RabbitMQ 3.7.8RocketMQ 5.0Go1.21github.com/segmentio/kafka-go v0.4.45 结论先行 Kafka 只能保证单一分区内的顺序消息,无法保证多分区间的顺序消息…...
什么是 Jest ? Vue2 如何使用 Jest 进行单元测试?Vue2 使用 Jest 开发单元测试实例
什么是Jest? Jest 是一个流行的 JavaScript 测试框架,由 Facebook 开发并维护,专注于简单性和速度。它通常用于编写 JavaScript 和 TypeScript 应用程序的单元测试、集成测试和端到端测试。 特点: 简单易用: Jest 提供简洁的 API 和易于理解的语法,使得编写测试用例变得…...
【云原生 Prometheus篇】Prometheus架构详解与核心组件的应用实例(Exporters、Grafana...)
Prometheus Part1 一、常用的监控系统1.1 简介1.2 Prometheus和zabbix的区别 二、Prometheus2.1 简介2.2 Prometheus的主要组件1)Prometheus server2)Exporters3)Alertmanager4)Pushgateway5)Grafana 2.3 Prometheus的…...
Mindomo Desktop for Mac免费思维导图软件,助您高效整理思维
思维导图是一种强大的工具,可以帮助我们整理思维、提高记忆力、激发创造力。而Mindomo Desktop for Mac作为一款免费的思维导图软件,能够帮助我们更高效地进行思维整理和项目管理。在本文中,我们将介绍Mindomo Desktop for Mac的功能和优势&a…...
udp通信socket关闭后,缓存不清空
udp通信socket关闭后,缓存不清空 udp通信socket关闭后,缓存不清空如何清空udp缓存 udp通信socket关闭后,缓存不清空 关闭一个 UDP socket 连接后,底层接收缓冲区中存储的数据不会被清空。实际上,关闭 socket 连接并不…...
第六章:信号完整性(SI)基础
文章目录 6.1 信号完整性概述 SI问题分类 频率与信号完整性 6.2 反射与端接 反射原理 反射改善方法 端接设计 6.3 时序分析 传输时间 建立/保持时间 6.4 抖动分析 抖动类型 总抖动计算 6.5 眼图分析 眼图参数 眼图合规性 学习要点 核心概念 关键数据 6.1 信号完整性概述 SI问题…...
多模态模型体积暴增87%?SITS2026首席架构师亲授:4类跨模态冗余识别法+2种硬件感知剪枝策略
第一章:SITS2026专家:多模态模型压缩 2026奇点智能技术大会(https://ml-summit.org) 多模态压缩的核心挑战 传统单模态压缩方法(如图像剪枝、语言模型量化)难以直接迁移至多模态场景,因跨模态对齐损失、联合表征耦合…...
10个JavaScript核心概念深度解析:从基础到高级的面试通关指南
10个JavaScript核心概念深度解析:从基础到高级的面试通关指南 【免费下载链接】front-end-interview-handbook Front End interview preparation materials for busy engineers (updated for 2026) 项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-i…...
酷安UWP:在Windows电脑上体验完整酷安社区的终极指南
酷安UWP:在Windows电脑上体验完整酷安社区的终极指南 【免费下载链接】Coolapk-UWP 一个基于 UWP 平台的第三方酷安客户端 项目地址: https://gitcode.com/gh_mirrors/co/Coolapk-UWP 还在为手机小屏幕刷酷安而感到眼睛酸痛吗?想在大屏幕上舒适地…...
Umi-OCR完整指南:5分钟掌握免费离线文字识别技巧
Umi-OCR完整指南:5分钟掌握免费离线文字识别技巧 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。…...
字节 Seedance2.0 加持,多平台分发工具如何更高效
2026年做自媒体,AI和人配合干活已经很常见了,多平台一起发内容也成了标配。但不管是个人做号、中小团队,还是大团队,都有同一个烦恼:做视频费时间、多平台发内容太麻烦、人力成本也高,多少都会影响内容产出…...
突破传统化学研究的终极AI助手:深度解析ChemBERTa如何实现分子智能预测的革命
突破传统化学研究的终极AI助手:深度解析ChemBERTa如何实现分子智能预测的革命 【免费下载链接】bert-loves-chemistry bert-loves-chemistry: a repository of HuggingFace models applied on chemical SMILES data for drug design, chemical modelling, etc. 项…...
计算机毕业设计:Python全国降水数据采集与预警平台 Flask框架 数据分析 可视化 大数据 AI 大模型 爬虫 数据大屏(建议收藏)✅
1、项目介绍 技术栈 采用 Python 语言开发,基于 Flask 框架搭建后端服务,使用 sqlite 数据库进行数据存储,前端利用 Echarts 实现数据可视化与数据大屏展示,通过爬虫技术采集降水数据。 功能模块降水量分析主页降水量数据展示…...
芝加哥伊利诺伊大学等机构联合破解AI语言模型生成困局
这项由芝加哥伊利诺伊大学、清华大学、MBZUAI以及麦吉尔大学联合开展的研究发表于2026年,论文编号为arXiv:2604.00375v1,为解决人工智能语言模型在文本生成中面临的质量与探索平衡难题提供了突破性解决方案。当我们使用ChatGPT或其他AI写作工具时&#x…...
别再手动调参了!用GCNet模块给你的ResNet模型加个“全局感知”Buff(附PyTorch代码)
别再手动调参了!用GCNet模块给你的ResNet模型加个“全局感知”Buff(附PyTorch代码) 在计算机视觉任务中,ResNet等经典网络架构虽然表现出色,但往往缺乏对全局上下文信息的有效利用。传统解决方案要么计算成本高昂&…...
