华为OD机试真题B卷 Java 实现【删除字符串中出现次数最少的字符】,附详细解题思路

news/2024/11/24 21:59:13/

在这里插入图片描述

一、题目描述

删除字符串中出现次数最少的字符,如果多个字符出现次数一样则都删除。

二、输入描述

一个字符串。

三、输出描述

删除字符串中出现次数最少的字符,如果多个字符出现次数一样则都删除,如果都被删除 则换为empty。

四、解题思路

  1. 读取输入的字符串;
  2. 将字符串转换为字符数组;
  3. 使用 HashMap 统计每个字符出现的次数,字符作为键,出现次数作为值;
  4. 找出出现次数最少的字符,即最小次数 minTime,使用 Stream 的 min() 方法取得最小值;
  5. 遍历 HashMap,将出现次数等于 minTime 的字符替换为空字符串;
  6. 如果替换后的字符串长度为 0,则将其置为 “empty”;
  7. 输出最终结果。

五、Java算法源码

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String line = scanner.nextLine();char[] arr = line.toCharArray();// 统计每个字符出现的次数Map<Character, Integer> map = new HashMap<Character, Integer>();for (char c : arr) {if (map.containsKey(c)) {map.put(c, map.get(c) + 1);} else {map.put(c, 1);}}// 最小次数int minTime = map.values().stream().min(Integer::compareTo).get();// 替换掉出现最小次数的字符for (Map.Entry<Character, Integer> entry : map.entrySet()) {if (entry.getValue().equals(minTime)) {line = line.replaceAll(entry.getKey() + "", "");}}// 输出结果if (line.length() == 0) {line = "empty";}System.out.println(line);
}

六、效果展示

1、输入

dftww

2、输出

ww

3、思路

  1. 先找到出现最少的次数;
  2. 然后把出现最小次数的字符从字符串剔除;
  3. 暂无其他更高效的思路;

在这里插入图片描述


🏆本文收录于,华为OD机试2023(Java)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/520741.html

相关文章

「Java核心技术大会2023」——AIC送书第三期

共同深入探讨 Java 生态&#xff01;直播预约&#xff1a;视频号“IT阅读排行榜” 大会简介 人工智能在22年、23年的再次爆发让Python成为编程语言里最大的赢家&#xff1b;云原生的持续普及令Go、Rust等新生的语言有了进一步叫板传统技术体系的资本与底气。我们必须承认在近…

apple与android传数据线,可以同时插安卓和苹果的数据线

原标题&#xff1a;可以同时插安卓和苹果的数据线 问题&#xff1a;如何清理iPhone垃圾? 答案&#xff1a;微信公众号&#xff1a;果粉之家回复 4 现在手机线分为两大种&#xff1a;iPhone / iPad 专用的 Lightning 线&#xff0c;以及大部分 Android 装置使用的 microUSB 线。…

android 数据线有几种,不止是安卓和苹果线,手机数据线原来还有这几种!

原标题&#xff1a;不止是安卓和苹果线&#xff0c;手机数据线原来还有这几种&#xff01; 随着智能手机日益发展&#xff0c;辅助智能手机的数据线配件也越来越多样。 现在我们最常见的无非就是标准Micro usb口、正反随便插的Type-c接口、还有苹果Lightning数据线&#xff0c;…

iphone ipad等苹果设备30针数据线接口定义,大家可能有用

原文地址::http://wenku.baidu.com/view/0afc1cfb910ef12d2af9e781.html 相关网帖 1、iphone数据线接口定义----http://wenku.baidu.com/view/0c31aa28ed630b1c59eeb5e5.html iphone,数据线,ipad,接口 找到iphone ipad等苹果设备30针数据线接口定义&#xff0c;大家可能有用 …

DES加密算法及Python实现

一、DES加密算法原理 DES加密算法是一种对称密钥的块加密算法&#xff0c;1976年成为美国联邦标准。其加密流程如下&#xff1a; 密钥的生成&#xff1a;将64位密钥按照置换选择1表进行置换&#xff0c;得到56位的密钥&#xff0c;并分成左右两部分各28位。然后使用16个不同的演…

【算法】Greatest Sum Divisible by Three 可被三整除的最大和

文章目录 Greatest Sum Divisible by Three 可被三整除的最大和问题描述&#xff1a;分析代码 Tag Greatest Sum Divisible by Three 可被三整除的最大和 问题描述&#xff1a; 给你一个整数数组 nums&#xff0c;请你找出并返回能被三整除的元素最大和。 nums.length 范围[…

Python 定义函数

目录 定义函数 函数定义详解 默认值参数 关键字参数 特殊参数 位置或关键字参数 仅位置参数 仅限关键字参数 函数示例 小结 任意实参列表 解包实参列表 Lambda 表达式 文档字符串 函数注解 小插曲&#xff1a;编码风格 定义函数 下列代码创建一个可以输出限定…

JDK1.8 lambda_函数式编程_stream流

一、 lambda表达式 jdk 1.8 引入了 lambda表达式 能够我们 编写代码时更加简洁,也为函数式编程提供了支持 lambda表达式 作用 简化匿名实现类的书写&#xff0c;实现接口抽象方法&#xff1b; (参数类型 参数名1,参数类型 参数名2,……参数类型 参数名n)->{ //方法体 } …