当前位置: 首页 > news >正文

(新卷,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; }
http://www.jsqmd.com/news/201199/

相关文章:

  • RStudio官网秘籍:1小时搭建数据科学原型
  • 注意力机制:AI如何提升代码理解与生成能力
  • C#实战:用快马平台快速开发电商库存管理系统
  • 1小时用JasperReports打造企业级报表原型
  • 5分钟搭建MICROSOFT VISUAL C++原型
  • 【毕业设计】深度学习基于CNN卷积网络的动物是否疲劳识别
  • AI如何帮你高效管理PGSQL数据库?
  • Python环境配置原型:5分钟验证你的项目需求
  • 5个实际项目中JS Switch的高级应用场景
  • 【课程设计/毕业设计】机器学习基于CNN卷积网络的动物是否疲劳识别
  • VS2022下载实战应用案例分享
  • WSL安装实战应用案例分享
  • ALIBABAPROTECT入门指南:从零开始学习数据防护
  • 救命神器!专科生必看8个AI论文网站深度测评
  • (新卷,100分) - 最小的调整次数特异性双端队列(Java Python JS C++ C )
  • 人工智能论文改写工具横向评测:8大网站降重能力解析
  • (新卷,200分)-最长方连续方波信号(Java Python JS C++ C )
  • Java 网络编程
  • 1小时用Pandas搭建数据看板原型
  • 8款AI降重工具对比评测:论文改写效果与文本优化分析
  • AI助力JDK8下载与配置:一键解决环境搭建难题
  • (新卷,200分)-最大社交距离(Java Python JS C++ C )
  • 深入探讨AI原生应用领域RAG的行业应用
  • 人工智能论文降重工具评测:8个平台的改写效果对比
  • 深度学习毕设项目推荐-基于python卷积神经网络训练识别牙齿是否健康人工智能
  • 深度学习毕设项目:机器学习基于CNN卷积网络的动物是否疲劳识别
  • 8大AI论文降重工具横向对比:改写能力与文本优化分析
  • 论文AI改写工具评测:8个平台的降重效果与文本优化对比
  • 要闻集锦|宇树回应IPO绿色通道被叫停;腾讯元宝回应AI骂人;Manus正式退出中国市场
  • HTML 颜色值