【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 字符串筛选排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

字符串筛选排序(100分)

🌍 评测功能需要 订阅专栏 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • 字符串筛选排序
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入1
      • 样例输出1
      • 样例输入2
      • 样例输出2
      • 数据范围
      • 题解
      • 参考代码

字符串筛选排序

问题描述

LYA 有一个由 N N N 个大小写字母组成的字符串 S S S。她想按照字母的 A S C I I ASCII ASCII 码值从小到大对字符串进行排序,并找到排序后的字符串中第 K K K 个最小 A S C I I ASCII ASCII 码值的字母在原字符串 S S S 中的位置索引(字符串的第一个字母位置索引为 0 0 0)。

如果 K K K 大于字符串 S S S 的长度,则输出原字符串中 A S C I I ASCII ASCII 码值最大的字母所在的位置索引。

如果第 K K K 个最小 A S C I I ASCII ASCII 码值的字母在原字符串中出现多次,则输出该字母第一次出现的位置索引。

输入格式

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

第二行输入一个正整数 K K K,表示要查找的第 K K K A S C I I ASCII ASCII 码值的字母。

输出格式

输出一个整数,表示第 K K K 个最小 A S C I I ASCII ASCII 码值的字母在原字符串 S S S 中第一次出现的位置索引。

如果 K K K 大于字符串 S S S 的长度,则输出原字符串中 A S C I I ASCII ASCII 码值最大的字母所在的位置索引。

样例输入1

AbCdeFG
3

样例输出1

5

样例输入2

fAdDAkBbBq
4

样例输出2

6

数据范围

1 ≤ N ≤ 1 0 5 1 \le N \le 10^5 1N105
1 ≤ K ≤ 1 0 9 1 \le K \le 10^9 1K109

题解

本题需要先对字符串按照 A S C I I ASCII ASCII 码值从小到大进行排序,然后找到排序后的第 K K K 个字母在原字符串中第一次出现的位置索引。

首先,我们可以直接使用语言内置的排序函数对字符串进行排序,得到按 A S C I I ASCII ASCII 码值从小到大排序后的字符串。

然后,我们取排序后字符串的第 K K K 个字母(如果 K K K 大于字符串长度,则取最后一个字母),记为 c h ch ch

接下来,我们遍历原字符串,找到字母 c h ch ch 第一次出现的位置索引即可。

时间复杂度为 O ( N log ⁡ N ) O(N \log N) O(NlogN),其中排序的时间复杂度为 O ( N log ⁡ N ) O(N \log N) O(NlogN),遍历查找的时间复杂度为 O ( N ) O(N) O(N)

参考代码

  • Python
s = input()
k = int(input())
sorted_s = sorted(s)
ch = sorted_s[min(k - 1, len(s) - 1)]
print(s.index(ch))
  • 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 s = sc.nextLine();int k = sc.nextInt();char[] chars = s.toCharArray();Arrays.sort(chars);char ch = chars[Math.min(k - 1, s.length() - 1)];System.out.println(s.indexOf(ch));}
}
  • Cpp
#include <iostream>
#include <algorithm>
#include <string>using namespace std;int main() {string s;cin >> s;int k;cin >> k;string sorted_s = s;sort(sorted_s.begin(), sorted_s.end());char ch = sorted_s[min(k - 1, (int)s.length() - 1)];cout << s.find(ch) << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/352202.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比特币的共识协议

目录 前言 一、铸币交易 1.铸币权 2.铸币交易&#xff08;coinbase tx&#xff09; 3.输入和输出 二、小型的区块链 1.见下图所示 2.哈希指针 3.双花攻击 三、块头块身&#xff0c;全节点轻节点 1.块头(block head) 2.块身 3.全节点full node(fully validating node…

小孟再接盲盒小程序,3天开发完!

大家好&#xff0c;我是程序员小孟。 前面开发了很多的商业的单子&#xff0c;私活联盟的小伙伴慢慢的逐渐搞自己的产品。 前面的话&#xff0c;开发了盲盒小程序&#xff0c;最近又接了一款盲盒小程序。因为前面有开发过&#xff0c;所以我们的成本也少了很多。 盲盒小程序…

【一】【QT开发应用】QT开发环境配置,安装QT应用

下载QT软件 点击网址链接&#xff0c;QT下载网址 下载vsaddin插件 点击网址链接&#xff0c;QT下载网址 根据自己的vs版本下载对应的文件. 安装QT 用命令行打开安装程序 找到直接路径, D:\Software\QT\qt-unified-windows-x86-4.3.0-1-online.exe 利用WindowsPowe…

Docker的基本操作 及 容器与外部机互相通讯(持续更新中)

Docker入门&#xff1a; Docker 入门教程 - 阮一峰的网络日志 (ruanyifeng.com)docker入门&#xff0c;这一篇就够了。-CSDN博客Docker 容器使用 | 菜鸟教程 (runoob.com)Docker自定义网络和运行时指定IP_docker run ip-CSDN博客 基本命令 链接&#xff1a;docker入门&#…

鸿蒙: 基础认证

先贴鸿蒙认证 官网10个类别总结如下 https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398 10节课学习完考试 考试 90分合格 3次机会 1个小时 不能切屏 运行hello world hvigorfile.ts是工程级编译构建任务脚本 build-profile.json5是工程…

你还不会选ProfiNET和EtherCAT网线?

在现代工业自动化领域&#xff0c;ProfiNET和EtherCAT是两种非常流行的通信协议。选择合适的网线对于确保通信的稳定性和效率至关重要。 ProfiNET是什么&#xff1f; ProfiNET是一种基于以太网的通信协议&#xff0c;由德国西门子公司开发。它支持实时通信&#xff0c;广泛应用…

【启明智显方案分享】ESP32-S3与GPT AI融合的智能问答嵌入式设备应用解决方案

一、引言 随着物联网&#xff08;IoT&#xff09;和人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;嵌入式设备正逐渐变得智能化。本解决方案是启明智显通过结合ESP32-S3的低功耗、高性能特性和GPT&#xff08;Generative Pre-trained Transformer&#xff09;…

【第10章】如何获取免费“工作流”?(国内外网站推荐/下载/使用)ComfyUI基础入门教程

使用ComfyUI的一个重点,就是可以快速使用别人分享的工作流,来完成特定的图像生成任务,从而提升工作效率。 那么,去哪儿可以找到别人分享的工作流呢? 这节课我们了解下,比较知名的工作流网站有哪些?以及如何下载? 备注:下节课再讲如何使用。 🎆“老牌” workflow网…

基于QT5.12.7的VTK8.2下的VS2015 X64源码编译以及测试

有一段时间没更新博客了&#xff0c;最近在考虑使用VTK作为软件的后处理显示&#xff0c;相比于OSG&#xff0c;VTK在后处理上集成了很多优秀的算法&#xff0c;使用起来比较方便&#xff0c;而且后处理一般不需要太多的交互&#xff0c;所以VTK是一个不错的选择。 之前对VTK了…

数据仓库与数据挖掘(期末复习)

数据仓库与数据挖掘&#xff08;期末复习&#xff09; ETL的含义Extract 、 Transformation、Load。 ODS的全称Operational Data Store。 DW全称 Data Warehourse DM全称是Data Mart 数据仓库数据抽取时所用到技术是增量、全量、定时、调度 STAGE层作用是提供业务系统数据…

HTML初体验

可参考jd.com官网&#xff0c;ctrlu查看当前页面源代码 找到你的项目&#xff0c;在项目中创建html类型的网页文件 标准的HTML正确书写格式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title&…

牛客热题:最长回文子串

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;最长回文子串题目链接方法一&am…

大模型Claude 3产品调研

一、公司与产品介绍 Anthropic公司&#xff0c;由前OpenAI高级成员达里奥阿莫代&#xff08;Dario Amodei&#xff09;和丹妮拉阿莫代&#xff08;Daniela Amodei&#xff09;兄妹于2021年创立&#xff0c;致力于开发先进的人工智能技术。作为公司的旗舰产品&#xff0c;Claud…

JavaEE进阶----SpringBoot快速入门

文章目录 前言一、了解Maven1.1 Maven功能- 项⽬构建- 管理依赖 1.2Maven仓库 二、第一个SpringBoot项目总结 前言 Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架&#xff0c;提供了开发微服务和独立的应用程序所需的一切。 一、了解…

学生党打工人救星,GPT一句话生成精美PPT

学生党打工人救星&#xff0c;GPT一句话生成精美PPT 介绍 在这个快节奏的现代社会&#xff0c;效率是关键。无论是工作会议、学术报告&#xff0c;还是产品展示&#xff0c;一个精美而结构合理的 PPT 都是成功的关键。然而&#xff0c;制作一个高质量的 PPT 往往需要耗费大量…

气体传感器的工作原理探究

气体传感器的工作原理主要基于其内部的感应元件与目标气体之间的相互作用。不同的气体传感器可能采用不同的工作原理&#xff0c;但其核心目的都是将气体的浓度或成分转化为可测量和处理的电信号。 PID气体传感器 以常见的电化学式气体传感器为例&#xff0c;其工作原理涉及气体…

Euro Efficiency(POJ, Open judge)

题目链接: 1252 -- Euro Efficiency 题目描述: 思路: 题面的大概意思就是给你一组基本面值的钱币&#xff0c;问你要凑出指定的面值最少需要多少个钱币的参与&#xff0c;钱币的参与可以是加法也可以是减法。 分析一下&#xff0c;由于答案与钱币参与的顺序无关&#xff0c;…

【C++入门(3)】函数重载、引用

一、函数重载 1、函数重载概念 函数重载是指在同一作用域中&#xff0c;具有不同形参列表&#xff08;参数的 个数 或 类型 或类型顺序 不同&#xff09;的同名函数。 C语言中不允许同名函数的存在&#xff0c;如果一个程序中有两个函数的函数名完全相同&#xff0c;就会报错…

轻松4步!格式工厂怎么转换mp3教会你

在数字化时代&#xff0c;音频文件格式转换变得越发重要&#xff0c;而格式工厂作为一款强大而多功能的工具&#xff0c;为我们提供了便捷的音频转换解决方案。特别是在将音频文件转换为MP3的需求上&#xff0c;格式工厂以其简便易用的特点备受欢迎。格式工厂怎么转换mp3&#…

坚持刷题|合并有序链表

文章目录 题目思考代码实现迭代递归 扩展实现k个有序链表合并方法一方法二 PriorityQueue基本操作Java示例注意事项 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;消失了一段时间&#xff0c;我又回来刷题啦&#xff0c;今天…