外卖网站开发方案,微网站怎么做的好,网站怎么做彩页,跨平台软件开发工具目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷C卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
给定两个字符集合一个是全量字符集一个是已占用字符集已占用字符集中的字符不能再使用要求输出剩余可用字符集。
二、输入描述
输入一个字符串 一定包含前为全量字符集 后的为已占用字符集。已占用字符集中的字符一定是全量字符集中的字符字符集中的字符跟字符之间使用英文逗号隔开。每个字符都表示为字符加数字的形式用英文冒号分隔比如 a:1 标识 1 个 a 字符。字符只考虑英文字母区分大小写数字只考虑正整型 不超过100。如果一个字符都没被占用标识仍存在例如 a:3,b:5,c:2。
三、输出描述
输出可用字符集不同的输出字符集之间用回车换行。
注意输出的字符顺序要跟输入的一致不能输出b:3,a:2,c:2。
如果某个字符已全部占用则不需要再输出。
1、输入
a:3,b:5,c:2a:1,b:2
2、输出
a:2,b:3,c:2
3、说明
全量字符集为 3a5b2c
已占用字符集为 1a2b
可用字符集 全部的 - 使用过的 2a3b2c
四、解题思路
迄今为止这道题是我遇到的最简单的题~
五、Java算法源码
public class Test02 {/*** 输入a:3,b:5,c:2a: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();// 用过的字符MapString,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:6a:2,c:2
2、输出
a:3,b:7,c:4
3、说明
全量字符集为 5a7b6c
已占用字符集为 2a2c
可用字符集 全部的 - 使用过的 3a7b4c 下一篇华为OD机试 - 最长的顺子 - 感谢禁止你发言提供的更简便算法Java 2023 B卷 200分
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。