华为OD机试【全量和已占用字符集】(java)(100分)

1、题目描述

给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。

2、输入描述

  1. 输入一个字符串 一定包含@,@前为全量字符集 @后的为已占用字符集;
  2. 已占用字符集中的字符一定是全量字符集中的字符;
  3. 字符集中的字符跟字符之间使用英文逗号隔开;
  4. 每个字符都表示为字符+数字的形式用英文冒号分隔,比如a:1标识一个a字符;
  5. 字符只考虑英文字母,区分大小写;
  6. 数字只考虑正整型,不超过100;
  7. 如果一个字符都没被占用 @标识仍存在,例如 a:3,b:5,c:2@

3、输出描述

  1. 输出可用字符集;
  2. 不同的输出字符集之间用回车换行;
  3. 注意 输出的字符顺序要跟输入的一致,如下面用例不能输出b:3,a:2,c:2;
  4. 如果某个字符已全部占用,则不需要再输出
    用例:
输入
a:3,b:5,c:2@a:1,b:2输出
a:2,b:3,c:2ps:
全量字符集为三个a,5个b,2个c
已占用字符集为1个a,2个b
由于已占用字符不能再使用
因此剩余可用字符为2个a,3个b,2个c
因此输出a:2,b:3,c:2

温馨提示!!!
华为OD机试考试官方会对考生代码查重。华为od机试因为有题库所以有很大的概率抽到原题。如果碰到了题库中的原题,千万不要直接使用题解中的代码,一定要做些修改,比如代码中的变量名,除此之外,代码的组织结构和逻辑也要进行一些改变,所以在日常的刷题中,要提前编写好属于自己的代码。

4、题解

本题简单,看代码。
代码如下:

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr = sc.nextLine().split("@");String[] allStrs = arr[0].split(",");String[] usedStrs = {};if (arr.length > 1) {usedStrs = arr[1].split(",");}Map<String, Integer> maps = new HashMap<>();// 全量字符转mapfor (String str : allStrs) {String[] tmp = str.split(":");String c = tmp[0];Integer num = Integer.parseInt(tmp[1]);maps.put(c, num);}// 过滤已用字符for (String str : usedStrs) {String[] tmp = str.split(":");int usedNum = Integer.parseInt(tmp[1]);int sub = maps.get(tmp[0]) - usedNum;if (sub == 0) {maps.remove(tmp[0]);}else {maps.put(tmp[0], sub);}}for (Map.Entry<String, Integer> entry : maps.entrySet()) {System.out.println(entry.getKey() + ":" + entry.getValue());}
}

执行结果如下:
在这里插入图片描述

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

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

相关文章

Linux网络部分——部署YUM仓库及NFS共享服务

目录 一、yum仓库服务 1. 软件仓库的提供方式 2.如何构建并使用ftp软件仓库&#xff08;与本地yum源方法一致&#xff09; 3.如何搭建使用yum在线源&#xff1f; 4.yum软件包下载如何保存&#xff1f; 二、NFS共享存储服务 1.存储类型 2.提供共享存储的组合 3.NFS网络…

山东齐鲁文化名人颜廷利:教育的本质区别重点是什么

教育的本质区别重点是‘方式’&#xff0c; 现在的教育却成为了一种‘形式’&#xff1b; 教育的核心价值关键载于‘实践’&#xff0c; 当前我们的教育观念却变成了消耗‘时间’&#xff1b; ‘读书’的原则在于‘堵疏’&#xff0c;作为汉语‘堵疏’一词&#xff0c;顾名思义…

掌握学习平台中的高效学习技巧

学习在我们生活中起着至关重要的作用。随着科技的发展&#xff0c;越来越多的学习平台为我们提供了更广阔的学习机会。然而&#xff0c;要实现高效学习&#xff0c;我们需要掌握一些技巧。 规划学习目标 首先&#xff0c;一个明确的学习目标是高效学习的基础。在使用学习平台…

如何将jsp项目转成springboot项目

昨天说过&#xff0c;springboot推荐使用Thymeleaf作为前后端渲染的模板引擎&#xff0c;为什么推荐用Thymeleaf呢&#xff0c;有以下几个原因&#xff1a; 动静结合&#xff1a;Thymeleaf支持HTML原型&#xff0c;允许在HTML标签中增加额外的属性来实现模板与数据的结合。这样…

Redis缓存雪崩,击穿,穿透问题

缓存雪崩、击穿、穿透、发生的背景 ​ 作者最近在写一个社区论坛项目&#xff0c;初始设想将论坛里用户发布的帖子内容存到数据库中&#xff0c;当用户访问论坛里的帖子时&#xff0c;帖子信息都从数据库中查。众所周知数据库的帖子数据是存在磁盘中的&#xff0c;而磁盘读写数…

20240509解决Protel99se导入philips.ddb出现File is not recognized的问题

20240509解决Protel99se导入philips.ddb出现File is not recognized的问题 2024/5/9 16:25 缘起&#xff1a;最近需要用到/画PCB&#xff0c;想到十年前用过Protel99SE。 使用的系统&#xff1a;WIN10/WIN11都会出错。WIN7没有测试&#xff01; 从115网盘的角落里找到七集视频…

【笔记】Anaconda命令提示符(Anaconda Prompt)操作

通过anaconda配置python环境有时需要conda安装一些包或者文件&#xff0c;这里作为一个笔记记录如何打开Anaconda命令提示符&#xff08;Anaconda Prompt&#xff09;&#xff0c;并用conda操作 1.打开Anaconda命令提示符&#xff08;Anaconda Prompt&#xff09; 可直接在搜…

DELL EMC unity存储系统如何初始化

在客户的存储使用过程中&#xff0c;经常会碰到一些场景需要对存储系统做重新初始化&#xff0c;就是回到出厂时候的配置。比如&#xff0c;客户设备要利旧&#xff0c;二次使用&#xff0c;一般都要回到出厂状态做重新配置的动作。存储严重故障&#xff0c;没有能力修复或者数…

十四五”智慧城市:视频大数据汇聚系统2.0建设方案与特点分析

一、背景需求分析 随着科技的不断发展&#xff0c;智慧城市的建设已经成为城市发展的重要方向。视频汇聚系统作为智慧城市建设的重要组成部分&#xff0c;已经得到了广泛的应用和推广。视频汇聚系统是智慧城市中非常重要的组成部分&#xff0c;它利用摄像头和传感器技术来收集…

IDEA切换分支

1、选择要切换分支的module 2、右键&#xff0c;选择git 3、再点击branches 4、可以看到当前module的本地分支&#xff08;local Branches&#xff09;及远程分支&#xff08;Remote Branches&#xff09;列表。点击你要切换到的分支,Checkout即可。

卡牌——蓝桥杯十三届2022国赛大学B组真题

样例输入 4 5 1 2 3 4 5 5 5 5样例输出 3样例说明 这 5 张空白牌中,拿2张写1,拿1张写2,这样每种牌的牌数就变为了3,3,3,4, 可以凑出 3套牌,剩下2张空白牌不能再帮助小明凑出一套。 评测用例规模与约定 对于30%的数据&#xff0c;保证n ⩽ \leqslant ⩽ 2000; 对于100%的数据…

Baidu Comate:智能编码,编程效率的革新者

文章目录 一、何为智能编码助手&#xff1f;二、Baidu Comate智能编码助手简介三、Baidu Comate注册四、Baidu Comate体验Comate插件功能1.注释生成代码2.函数注释生成3.行间注释生成4.生成代码解释5. 调优建议 五、插件功能的使用体验感受和建议 &#x1f6a9;结语 一、何为智…

走进标杆企业 | 山东国屹建材实现双站一体化管理

走进标杆企业 走进标杆企业&#xff0c;感受名企力量&#xff0c;探寻学习优秀企业领先之道。本期要跟砼行们推介的标杆企业是山东国屹新型建材有限公司。 山东国屹新型建材有限公司成立于2018年&#xff0c;共建有两个站点、四条混凝土生产线&#xff0c;预拌混凝土实际日产…

手写SpringBoot核心功能流程

本文通过手写模拟实现一个简易版的Spring Boot 程序&#xff0c;让大家能以非常简单的方式知道Spring Boot大概的工作流程。 工程依赖 创建maven工程&#xff0c;并创建两个module springboot模块&#xff1a;手写模拟springboot框架的源码实现 test模块&#xff1a;业务系统…

【GDAL应用】基于rasterstats的矢量数据分区统计栅格值信息

文章目录 1 实现效果2 实现功能3 实现代码 1 实现效果 矢量数据&#xff1a; 栅格数据&#xff1a;只有一个value值&#xff08;像素值或DN值&#xff09;&#xff0c;为1&#xff0c;计算统计时nodata作为0值处理。 输出结果&#xff1a; 2 实现功能 基于单波段的栅格数…

代码随想录刷题打卡day22

1 最大二叉树 使用递归的思路构造二叉树&#xff0c;一般选择前序遍历对树进行构造&#xff0c;需要先构造中间节点&#xff0c;然后递归构造左子树和右子树。 三部曲 确定递归函数的参数和返回值 参数传入的是存放元素的数组&#xff0c;返回该数组构造的二叉树的头结点&…

关于勒索攻击,绝大多数企业存在的三个认知误区

网络空间&#xff0c;有一个挥之不去的“幽灵”&#xff0c;它的名字就叫勒索攻击。 近年来&#xff0c;企业遭受勒索攻击的事件被频频曝光。就在不久前&#xff0c;国家安全部曝光了一起境外黑客组织对我国某高新科技企业实施勒索攻击的案例&#xff0c;该企业的相关信息化系统…

Java云商城系统 云端商城 一站式系统Java源码 云商城自助下单平台 云商城虚拟交易网

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 云商城系统&#xff0c;无后门&#xff0c;一站式系统Java源码&#xff0c;心权益商品数量不限数量 系统对接 手动发货 自动发货 兑 换 码 订单监控 商品监控 对象存储 邮箱提醒 加价模板 密价…

【ElementUI -- 优化小技巧系列】 -- el-tree 节点内容过长优化 以及选中默认节点

在使用elementui过程中经常碰到关于样式的问题&#xff0c;我曾经很喜欢通过类名修改css样式来做&#xff0c;其实原生封装的elementui库的样式对于普通开发来说已经足够了&#xff0c;通过类名修改css只会让组件臃肿难以维护&#xff0c;现在真的越来越怕写css&#xff0c;经常…

解决html2canvas生成图片慢的问题

// 主要看那个点击事件就行 <divclass"textBox-right-board-group"v-for"item in screenList":key"item.id"><!-- 获取不同分辨率下的屏幕的展示的文字大小DPI&#xff1a; fontSize: getFontSize(item.resolutionRatio), --><di…