华为OD机试 - 字符串筛选排序 - 数组(Java 2022 Q4 100分)

news/2024/7/20 17:38:17 标签: 华为od, java, 开发语言, 数组

在这里插入图片描述

目录

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

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

专栏导读

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

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

在这里插入图片描述

一、题目描述

输入一个由N个大小写字母组成的字符串,按照ASCII码值从小到大进行排序,查找字符串中第K个最小ASCII码值的字母(k>=1)。

输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0)。

k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果有重复字母则输出字母的最小位置索引

二、输入描述

第一行输入一个由大小写字母组成的字符串

第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度

三、输出描述

输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。

k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果第k个最小ASCII码值的字母存在重复 则输出该字母的最小位置索引。

四、解题思路

  1. 第一行输入一个由大小写字母组成的字符串
  2. 第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度
  3. 按照ASCII码值从小到大进行排序
  4. 通过克隆备份一个字符串数组
  5. 查找字符串中第K个最小ASCII码值的字母
  6. 遍历克隆的未排序的字符串数组
  7. 输出该字母所在字符串中的位置索引

五、Java算法源码

java">package com.guor.od;

import java.util.*;

public class OdTest01 {

    /**
     * 查找字符串中第K个最小ASCII码值的字母
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 第一行输入一个由大小写字母组成的字符串
        String input = sc.nextLine();
        // 第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度
        int k = Integer.valueOf(sc.nextLine());
        char[] arr = input.toCharArray();
        char obj = ' ';
        char[] cloneArr = arr.clone();

        // 按照ASCII码值从小到大进行排序
        Arrays.sort(arr);
        if (k > arr.length) {
            obj = arr[arr.length - 1];
        } else {
            // 查找字符串中第K个最小ASCII码值的字母
            obj = arr[k - 1];
        }

        for (int i = 0; i < cloneArr.length; i++) {
            // 输出该字母所在字符串中的位置索引
            if (obj == cloneArr[i]) {
                System.out.println(i);
                break;
            }
        }
    }
}

六、效果展示

1、输入

AbCdeFG
3

2、输出

5

3、说明

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

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

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

在这里插入图片描述


http://www.niftyadmin.cn/n/4971684.html

相关文章

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-@RequestParam

&#x1f600;前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-RequestParam &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c…

vue项目权限管理

1.权限分类 权限管理主要分为后端权限和前端权限。后端权限是关键&#xff0c;主要控制对数据库的操作&#xff1b;前端权限为辅&#xff0c;主要表现在对界面显示、路由导航、按钮显示操作与否、无效请求前端拦截和响应拦截提升用户体验等。 2.前端权限主要思路 菜单的控制&…

网络安全02-C段扫描、开放端口

查询网站IP https://seo.chinaz.com/hetianlab.com 扫描指定IP&#xff1a;例&#xff1a;nmap -A -T4 ww.hetianlab.com -oX out.html 扫描指定段&#xff1a;例&#xff1a;nmap -O -Pn -A 192.168.113.1-200 扫描整个C段&#xff1a;例&#xff1a;nmap -O -Pn -A 192.168.…

Hisilicon海思半导体

Hisilicon海思半导体 HiSi的Hi3559&#xff0c;Hi3519&#xff0c;Hi3516 NNIE 硬件加速器使用 环境搭建 HiSi的Hi3559&#xff0c;Hi3519&#xff0c;Hi3516 NNIE 硬件加速器使用 模型生成及模型仿真 HiSi的Hi3559&#xff0c;Hi3519&#xff0c;Hi3516 NNIE 硬件加速器使用…

内嵌功能强大、低功耗STM32WB55CEU7、STM32WB55CGU7 射频微控制器 - MCU, 48-UFQFN

一、概述&#xff1a; STM32WB55xx多协议无线和超低功耗器件内嵌功能强大的超低功耗无线电模块&#xff08;符合蓝牙 低功耗SIG规范5.0和IEEE 802.15.4-2011标准&#xff09;。该器件内含专用的Arm Cortex -M0&#xff0c;用于执行所有的底层实时操作。这些器件基于高性能Arm …

vue3将通用组件注册成全局组件

一、问题重现 我们用过vue的人都知道会有一个components文件夹用来存放我们的通用组件&#xff1a; 这里我的通用组件就有四个&#xff0c;但是有一些是使用评率比较高的&#xff0c;如果很多地方要使用我还得导入相同的组件&#xff0c;写的都是一样的代码&#xff1a; impo…

C语言巧妙打印64位整数

使用C语言打印64位整数时&#xff0c;如果用的是32位编译器&#xff0c;那么打印如下&#xff0c; int64_t data 0x1234567890123456; printf("0x%llx\n", data);如果是64位编译器&#xff0c;那么打印代码如下&#xff0c; int64_t data 0x1234567890123456; pr…

怎么配置多种 process.env.NODE_ENV

在 Vue 项目中&#xff0c;我们可以通过配置 vue.config.js 文件来设置多个 process.env.NODE_ENV。以下是一个详细的示例&#xff1a; 1.首先&#xff0c;在项目根目录下创建一个 vue.config.js 文件&#xff0c;如果不存在的话。 2.打开 vue.config.js 文件&#xff0c;然后在…