目录
- 专栏导读
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 说明:
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
- 1、输入
- 2、输出
- 3、说明
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
一、题目描述
给定一个字符串,把字符串按照大写在前小写在后排序,输出排好后的第 K 个字母在原来字符串的索引。
相同字母输出第一个出现的位置。
二、输入描述
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
hAkDAjByBq 4
三、输出描述
6
说明:
排好序后 AABBDhjkqy,第 4 个是 B,第一个出现的在原字符串 6 这个位置。(注:索引是从 0 开始)
四、解题思路
- 输入一个字符串和一个数字K,空格隔开;
- 把字符串按照大写在前小写在后排序;
- 输出排好后的第 K 个字母在原来字符串的索引;
五、Java算法源码
package com.guor.od;
import java.util.*;
public class OdTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 给定一个字符串
String[] arr = sc.nextLine().split(" ");
String str = arr[0];
int K = Integer.valueOf(arr[1]);
char[] sortArr = str.toCharArray();
// 把字符串按照大写在前小写在后排序
Arrays.sort(sortArr);
/**
* 输出排好后的第 K 个字母在原来字符串的索引
* 从零开始,因此-1
*/
char charK = sortArr[K - 1];
System.out.println(str.indexOf(charK));
}
}
六、效果展示
1、输入
NeZhaStudyJava 7
2、输出
4
3、说明
NeZhaStudyJava
按照大写在前小写在后排序,排序后变为:JNSZaaadehtuvy
。
输出排序好的第7个字母a 在原来字符串中的索引。
如果是多个,输出第一个。
第一个a的索引是4。
🏆下一篇:华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】,感谢fly晨发现这个问题,并提供更优质的算法
🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。