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

华为OD机试 - 找出符合要求的字符串子串(Java 2023 B卷 100分)

在这里插入图片描述

目录

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

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

专栏导读

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

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

在这里插入图片描述

一、题目描述

给定两个字符串,从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序。

  • 输入字符串1:长度不超过1024
  • 输入字符串2:长度不超过1000000\n\n字符范围满足ASCII编码要求,按照ASCII的值由小到大排序

二、输入描述

bach
bbaaccedfg

三、输出描述

abc

输入字符串1 为给定字符串bach,输入字符串2 bbaaccedfg
从字符串2中找出字符串1的字符,去除重复的字符,并且按照ASCII值从小到大排序,得到输出的结果为abc。
字符串1中的字符h在字符串2中找不到不输出。

输入输出说明
fach
bbaaccedfg
acf

四、解题思路

核心思想:

从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序。

  1. 去重
  2. 从字符串2中找出字符串1中的所有字符
  3. 按照ASCII值从小到大排序

五、Java算法源码

package com.guor.od;import java.util.*;public class OdTest {/*** 从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序。*/public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str1 = scanner.nextLine();String str2 = scanner.nextLine();// 去重Set<Character> set1 = new HashSet<>();for (char c : str1.toCharArray()) {set1.add(c);}Set<Character> set2 = new HashSet<>();for (char c : str2.toCharArray()) {set2.add(c);}// 从字符串2中找出字符串1中的所有字符List<Character> list = new ArrayList<Character>();for (char c : set1) {// 不包含的就移出掉if (set2.contains(c)) {list.add(c);}}// 按照ASCII值从小到大排序list.sort(new Comparator<Character>() {@Overridepublic int compare(Character o1, Character o2) {if (o1 < o2) {return -1;}else if (o1 > o2) {return 1;}else{return 0;}}});for (Character c : list) {System.out.print(c);}}
}

六、效果展示

1、输入

nezhastudyjavaveryhard
nezha

2、输出

aehnz

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

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

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

在这里插入图片描述

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

相关文章:

  • 深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
  • Ubuntu18.04安装cuDNN
  • Java逻辑控制
  • easyExcel合并单元格导出
  • SpringBoot项目--电脑商城【用户注册】
  • HCIP学习-IPv6
  • golang高精度十进制数扩展包decimal用法
  • STM32F4X RNG随机数发生器
  • 5、QT中SQLite数据库的操作
  • git回退到某个提交
  • 对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
  • Full authentication is required to access this resource解决办法
  • Jetty:使用上下文文件部署离线瓦片.md
  • Docker实战:docker compose 搭建Rocketmq
  • STL常用容器 (C++核心基础教程之STL容器详解)String的API
  • 《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套
  • MongoDB 数据库性能优化技巧
  • 网络安全人才缺口超百万,如今的就业情况怎样?
  • 「MySQL」MySQL面试题全解析:常见问题与高级技巧详解
  • 【USRP】产品型号、参数、架构全解析系列 6:N320 / N321
  • Apifox 常用 JS 脚本
  • 防止SQL注入的四种方案
  • java单元测试
  • 【LeetCode】双指针求解和为s的两个数字
  • opencv识别一张图片的多个红框,并截取红框的内容
  • 数据库-事务
  • MySQL 使用开源审计插件
  • Python入门教程 | Python3 集合(Set)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0
  • 【C++模拟实现】反向迭代器的实现