当前位置: 首页 > news >正文

华为OD机试 - 字符串统计(Java 2024 C卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
      • 1、输入
      • 2、输出
      • 3、说明
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2024C卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用,要求输出剩余可用字符集。

二、输入描述

  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

2、输出

a:2,b:3,c:2

3、说明

全量字符集为 3a5b2c

已占用字符集为 1a2b

可用字符集 = 全部的 - 使用过的 = 2a3b2c

四、解题思路

迄今为止,这道题是我遇到的最简单的题~

五、Java算法源码

public class Test02 {/*** 输入a:3,b:5,c:2@a:1,b:2* 输出a:2,b:3,c:2*/public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr = sc.nextLine().split("@");// 用过的字符Map<String,Integer> usedMap = new HashMap<>();String[] usedArr = arr[1].split(",");for (int i = 0; i < usedArr.length; i++) {String[] temp = usedArr[i].split(":");usedMap.put(temp[0],Integer.valueOf(temp[1]));}// 可用字符集StringBuilder builder = new StringBuilder();String[] allArr = arr[0].split(",");for (int i = 0; i < allArr.length; i++) {String[] temp = allArr[i].split(":");// 可用字符集 = 全部的 - 使用过的builder.append(temp[0]).append(":").append(Integer.valueOf(temp[1])-usedMap.getOrDefault(temp[0],0)).append(",");}// 输出可用字符集System.out.println(builder.deleteCharAt(builder.length()-1));}
}

六、效果展示

1、输入

a:5,b:7,c:6@a:2,c:2

2、输出

a:3,b:7,c:4

3、说明

全量字符集为 5a7b6c

已占用字符集为 2a2c

可用字符集 = 全部的 - 使用过的 = 3a7b4c

在这里插入图片描述


🏆下一篇:华为OD机试 - 最长的顺子 - 感谢@禁止你发言提供的更简便算法(Java 2023 B卷 200分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

http://www.lryc.cn/news/313367.html

相关文章:

  • LeetCode-数组-前缀和-中等难度
  • 【程序人生】探索2024年AI辅助研发趋势
  • 集合框架(一)Collection
  • Android 性能优化--APK加固(2)加密
  • Linux环境下使用interrupt方式操作UART
  • 修改Android打包apk的名字和目录
  • 管理 PostgreSQL 中配置参数的各种方法
  • Linux命令-continue命令(结束本次循环,继续执行下一个for,while或until循环。)
  • 智能部署之巅:Amazon SageMaker 引领机器学习革新
  • 国内哪个工具可以平替chatgpt?国内有哪些比较好用的大模型gpt?
  • python如何打包py文件为exe
  • yolov9网络结构图
  • Spark 核心API
  • OpenLayers线性渐变和中心渐变(径向渐变)
  • [210. 课程表 II] 拓扑排序模板(DFS+BFS)
  • 我的第一个python web 网站
  • 产品展示型wordpress外贸网站模板
  • 四信全球化拓展再启新篇!LoRa传感器与云平台领航智能感知时代
  • 阿里云k8s环境下,因slb限额导致的发布事故
  • 【STM32+OPENMV】矩形识别
  • 在吗?腾讯云服务器优惠价格表曝光_2023年3月报价请过目!
  • Revit-二开之创建Plane-(7)
  • 【操作系统学习笔记】文件管理1.2
  • 算法归纳【数组篇】
  • 【随笔】程序员如何选择职业赛道,目前各个赛道的现状如何,那个赛道前景巨大
  • 进程之舞:操作系统中的启动、状态转换与唤醒艺术
  • Java面试(4)之 Spring Bean生命周期过程
  • JavaSE——面向对象高级一(1/4)-static修饰成员变量、应用场景,static修饰成员方法、应用场景
  • 轻量脚本语言Lua的配置与c++调用
  • 力扣每日一道系列 --- LeetCode 160. 相交链表