独家华为OD机试 - 第K个最小码值的字母(C 语言解题)
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了独家华为OD机试 - 第K个最小码值的字母(C 语言解题)相关的知识,希望对你有一定的参考价值。
最近更新的博客
- 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单
- 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典
- 【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)
- 华为od机试,独家整理 已参加机试人员的实战技巧
文章目录
使用说明
参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。
华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12225286.html
华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730
本期题目:第K个最小码值的字母
题目
输入一个由n
个大小写字母组成的字符串
按照ASCII码值从小到大进行排序
查找字符串中第k
个最小ASCII码值的字母(k>=1)
输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0)
k
如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引
如果有重复字母则输出字母的最小位置索引
输入
第一行输入一个由大小写字母组成的字符串
第二行输入k
,k
必须大于0
,k
可以大于输入字符串的长度
输出
输出字符串中第k
个最小ASCII码值的字母所在字符串的位置索引
k
如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引
如果第k
个最小ASCII码值的字母存在重复,则输出该字母的最小位置索引
示例一
输入
AbCdeFG
3
输出
5
说明
根据ASCII码值排序,第三个ASCII码值的字母为F
F
在字符串中位置索引为5
(0为字符串的第一个字母位置索引)
示例一
输入
fAdDAkBbBq
4
输出
6
说明
根据ASCII码值排序前4
个字母为AABB
由于B
重复则只取B的第一个最小位置索引6
而不是第二个B
的位置索引8
Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void solveMethod(char* line, int k);
int main()
char line[1001];
scanf("%[^\\n]%*c", line);
int k;
scanf("%d", &k);
solveMethod(line, k);
return 0;
void solveMethod(char* line, int k)
int len = strlen(line);
char* list = (char*) malloc(len * sizeof(char));
strcpy(list, line);
for (int i = 0; i < len; i++)
for (int j = i+1; j < len; j++)
if (list[i] > list[j])
char tmp = list[i];
list[i] = list[j];
list[j] = tmp;
char c = (k >= len) ? list[len-1] : list[k-1];
printf("%d", (int)(strchr(line, c) - line));
free(list);
📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
从订购之日起,案例5年内保证更新
以上是关于独家华为OD机试 - 第K个最小码值的字母(C 语言解题)的主要内容,如果未能解决你的问题,请参考以下文章
华为OD机试真题Python实现第 K 个最小码值的字母真题+解题思路+代码(2022&2023)