news 2026/6/12 7:38:51

(新卷,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/6/10 23:46:59

HTML开发效率翻倍:快马平台VS传统手写代码对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个企业官网首页HTML代码&#xff0c;包含&#xff1a;全屏轮播banner&#xff08;3张图片自动切换&#xff09;&#xff0c;服务介绍区域&#xff08;4个服务卡片&#xff0…

作者头像 李华
网站建设 2026/6/10 17:30:47

CLAUDE CODE ROUTER:AI如何重构代码路由逻辑

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个基于CLAUDE CODE ROUTER的智能API网关系统&#xff0c;要求&#xff1a;1.支持RESTful和GraphQL协议自动识别 2.根据请求内容、频率和来源自动生成路由规则 3.内置负载均衡…

作者头像 李华
网站建设 2026/5/29 21:47:41

8款AI论文改写工具横向测试:降重与文本优化能力解析

在AI论文工具的选择上&#xff0c;8款热门平台针对降重、降低AIGC检测率及论文写作等核心功能进行了实测对比&#xff0c;结合效率、准确性和用户体验的综合评估&#xff0c;以下排名基于客观数据与真实反馈得出&#xff0c;帮助用户快速匹配需求。 排名 工具名称 关键优势 …

作者头像 李华
网站建设 2026/6/4 23:48:15

8大AI论文降重工具横向对比:改写能力与文本优化分析

在AI论文工具的选择上&#xff0c;8款热门平台针对降重、降低AIGC检测率及论文写作等核心功能进行了实测对比&#xff0c;结合效率、准确性和用户体验的综合评估&#xff0c;以下排名基于客观数据与真实反馈得出&#xff0c;帮助用户快速匹配需求。 排名 工具名称 关键优势 …

作者头像 李华
网站建设 2026/5/28 14:53:16

基于Python的购物管理系统毕业设计项目源码

项目简介 基于 Python 的购物管理系统&#xff0c;聚焦小型零售业务“库存精准、交易便捷、数据清晰”的核心需求&#xff0c;针对传统手工记账“效率低下、易出错、信息滞后”的痛点&#xff0c;构建覆盖管理员、收银员、库存员的全流程零售管理工具。系统采用 Python 原生开发…

作者头像 李华