华为OD机试-- 字符串筛选排序

139 阅读2分钟

输入一个由 n 个大小写字母组成的字符串,按照 Ascii 码值从小到大的排序规则,查找字符串中第 k 个最小ascii 码值的字母(k >= 1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为 0)。

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

输入描述:

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

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

输出描述:

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

在字符串的位置索引,如果第 k 个最小 ascii 码

值的字母存在重复,则输出该字母的最小位置索引。

示例 1:

输入

AbCdeFG

3

输出

5

说明:

根据ASCII码值排序,第三个ASCII码值的字母为F,F在字符串中位置索引为5(0为字符串的第一个字母位置索引)

示例 2:

输入:

fAdDAkBbBq

4

输出:

6

说明:

根据ASCII码值排序前4个字母为AABB由于B重复则只取B的第一个最小位置索引6,而不是第二个B的位置索引8

Java 实现:2023华为OD机试真题 Java 实现【字符串筛选排序】

Python实现:2023华为OD机试真题 Python 实现【字符串筛选排序】

C++ 实现:2023华为OD机试真题 C++ 实现【字符串筛选排序】

JavaScript实现:2023华为OD机试真题 JavaScript 实现【字符串筛选排序】

C实现:2023 华为OD机试(C语言)真题【A卷+B卷】

012b335dc6d7b6a8012163ba31dc9d.jpg@3000w_1l_0o_100sh.jpg