news 2026/4/15 9:59:32

(新卷,100分)- 字符串筛选排序(Java JS Python C)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(新卷,100分)- 字符串筛选排序(Java JS Python C)

(新卷,100分)- 字符串筛选排序(Java & JS & Python & C)

题目描述

输入一个由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

题目解析

简单的字符串操作题。


根据第二个用例来看,题目要找的第k个,不是去重+升序后的第k个,而只是排序后的第k个。

JavaScript算法源码
/* JavaScript Node ACM模式 控制台输入获取 */ const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines = []; rl.on("line", (line) => { lines.push(line); if (lines.length === 2) { const [str, k] = lines; console.log(getKIndex(str, k)); lines.length = 0; } }); function getKIndex(str, k) { if (k > str.length) k = str.length; const tar = [...str].sort()[k - 1]; return str.indexOf(tar); }
Java算法源码
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int k = sc.nextInt(); System.out.println(getResult(str, k)); } public static int getResult(String str, int k) { char[] chars = str.toCharArray(); Arrays.sort(chars); if (k > str.length()) k = str.length(); char tar = chars[k - 1]; return str.indexOf(tar); } }
Python算法源码
# 输入获取 s = input() k = int(input()) # 算法入口 def getResult(s, k): chars = list(s) chars.sort() if k > len(s): k = len(s) tar = chars[k - 1] return s.index(tar) # 调用算法 print(getResult(s, k))
C算法源码
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 10000 int cmp(const void* a, const void* b) { return (*(char*) a) - (*(char*) b); } int main() { char s[MAX_SIZE]; gets(s); int k; scanf("%d", &k); int n = strlen(s); char s_cp[n+1]; strcpy(s_cp, s); qsort(s_cp, n, sizeof(char), cmp); if(k > n) { k = n; } char target = s_cp[k - 1]; printf("%lld\n", strchr(s, target) - s); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 11:35:58

深度学习毕设项目:机器学习基于CNN卷积网络的动物是否疲劳识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/14 10:28:51

1小时原型:用OpenWeatherMap打造旅行天气规划器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个旅行天气规划器原型&#xff0c;功能&#xff1a;1. 用户输入旅行日期和目的地 2. 获取OpenWeatherMap的天气预报数据 3. 根据天气情况自动生成打包建议(如带伞、防晒…

作者头像 李华
网站建设 2026/4/14 9:44:31

RStudio官网秘籍:1小时搭建数据科学原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个数据科学原型框架&#xff1a;1) 预置常用数据科学工作流模板 2) 集成自动化EDA(探索性数据分析)功能 3) 包含模型快速验证模块 4) 支持一键生成演示报告。使用plumber创建…

作者头像 李华
网站建设 2026/4/10 19:34:55

大模型产品经理全栈指南:技术理解、产品设计与职业发展,如何从零开始成为产品经理

本文系统介绍了大模型产品经理的定义、职责、发展方向及必备技能&#xff0c;详述了从初级到专家的职业发展路径&#xff0c;分析了就业前景与市场需求。文章提供了一套完整的大模型学习体系&#xff0c;包括基础篇、进阶篇和实战篇&#xff0c;涵盖Python入门、大模型核心原理…

作者头像 李华
网站建设 2026/4/15 3:20:42

基于Python的历届奥运会数据可视化分析系统毕业设计项目源码

项目简介基于 Python 的历届奥运会数据可视化分析系统&#xff0c;聚焦体育数据洞察 “历史溯源、趋势挖掘、价值呈现” 的核心需求&#xff0c;针对传统体育数据 “维度单一、分析浅层、交互不足” 的痛点&#xff0c;构建覆盖体育爱好者、数据分析师、体育管理机构的全流程数…

作者头像 李华
网站建设 2026/4/14 9:16:12

泛型算法概述

文章目录 目录 概要 accumulate copy 小结 概要 泛型算法是C标准库里的又一重要的组成部分&#xff0c;泛型算法之所以被称为“算法”&#xff0c;是因为它们实现了一些经典算法的公共接口&#xff0c;例如&#xff1a;排序和搜索&#xff0c;“泛型”则意味着它们能够用…

作者头像 李华