【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.mzph.cn/diannao/29059.shtml

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

相关文章

深浅拷贝以及正则表达式(python)

浅拷贝和深拷贝&#xff1a; 浅拷贝&#xff1a; copy函数是浅拷贝&#xff0c;支队可变类型的第一层对象进行拷贝&#xff0c;对拷贝的对象开辟显得内存空间进行存储&#xff0c;不会拷贝对象内部的子对象 不可变类型的浅拷贝示例&#xff1a; 浅拷贝不会对不可变类型进行…

虚拟机使用桥接模式网络配置

1、获取本机的网络详细信息 windowr 输入cmd 使用ipconfig -all 一样即可 在自己的虚拟机中设置网络 虚拟机中的ip ---------192.168.36.*&#xff0c;不要跟自己的本机ip冲突 网关-----------192.168.36.254 一样即可 dns -----------一样即可&#xff0c;我多写了几个&am…

Node-red win11安装

文章目录 前言一、安装node.js和npm二、安装Node-red三、 运行Node-red 前言 Node-RED 是一种编程工具&#xff0c;用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 它提供了一个基于浏览器的编辑器&#xff0c;只需单击一下即可将调色板中的各种节点轻松连接在…

多视图变换矩阵与SLAM位姿估计中的地图点投影的几何约束

定义 projective transform 相机成像模型如下&#xff0c;从世界坐标系中的点到图像中的映射关系由一个矩阵 M M M施加在齐次坐标上&#xff0c;即&#xff1a; p K [ R ∣ t ] P M P pK\left[\begin{array}{ll} R \ | \ t \end{array}\right] PM P pK[R ∣ t​]PMP 其中…

Linux驱动开发-01配置开发环境

一、配置网络环境 使用桥接网卡时 Ubuntu 就是使用一个真实的网卡 &#xff1a;开发板的网线也连接到这个真实的网卡上&#xff0c;这样 Windows 、 Ubuntu 、开发板就都可以用过这个网卡互通了。 NAT 网卡&#xff1a; Ubuntu 通过它上网&#xff0c;只要 Windows 能上网&…

STM32中ADC在cubemx基础配置界面介绍

ADCx的引脚,对应的不同I/O口&#xff0c;可以复用。 Temperature :温度传感器通道。 Vrefint :内部参照电压。 Conversion Trigger: 转换触发器。 IN0 至 IN15,是1ADC1的16个外部通道。本示例中输出连接的是ADC2的IN5通道&#xff0c;所以只勾选IN5.Temperature Sensor Cha…

检索增强生成(RAG)的挑战与优化措施

如何理解检索增强生成&#xff08;RAG&#xff09; 简单来说&#xff0c;RAG就是让LLM通过外部知识源获取额外信息&#xff0c;从而生成更准确、更符合上下文的答案&#xff0c;并减少错误信息&#xff08;或称为“幻觉”&#xff09;的产生。 我们都知道&#xff0c;最先进的…

C# Winform Datagridview控件使用和详解

DataGridView 是一种以表格形式显示数据的控件&#xff0c;由Rows(行)&#xff0c;Columns(列)&#xff0c;Cells(单元格)构成。本实例将综合利用DataGridView的属性和事件&#xff0c;展示不同的表格风格数据和操作。包含&#xff1a; 添加Datagridview行&#xff0c;列数据设…

Vector | Graph:蚂蚁首个开源Graph RAG框架设计解读

作者&#xff1a;范志东 检索增强生成&#xff08;RAG&#xff1a;Retrieval Augmented Generation&#xff09;技术旨在把信息检索与大模型结合&#xff0c;以缓解大模型推理“幻觉”的问题。近来关于RAG的研究如火如荼&#xff0c;支持RAG的开源框架也层出不穷&#xff0c;并…

【蜂窝物联】物联网智能控制器助力各种自动化控制领域科学管控

【蜂窝物联】4G远程温湿度传感器科学管理利器&#xff0c;应用无处不在 2024-06-17 14:09 发布于&#xff1a;福建省 随着信息化的不断推进&#xff0c;对各行各业都是一次现代化升级的契机&#xff0c;比如工厂的温湿度监测工作&#xff0c;完全可以由无线温湿度监控方案…

Unity 材质系统优化(mesh相同,图片不同,但是可以将所有的图片合成一张图集)

今天提供一个Unity材质优化的思路&#xff0c;流程是这样的&#xff0c;模型的mesh相同只是图片不同&#xff0c;我想着能不能将所有的图片合成一张图集呢&#xff0c;于是我就试着在Blender里面开搞了&#xff0c;所有的mesh相同的模型&#xff0c;共用一个材质&#xff08;图…

八股文之JVM

目录 1.JVM内存划分 2.JVM类加载过程 3.JVM垃圾回收机制GC 3.1.判断谁是垃圾 3.2.如何释放对应的内存 1.JVM内存划分 在一个Java程序运行起来之后&#xff0c;jvm就会从操作系统中申请一块内存&#xff0c;然后就会将该内存划分成多个部分&#xff0c;用于不同的用途。 …

一、开发环境安装 Avalonia

1、概述 官网中是这么介绍Avalonia的&#xff0c;Avalonia是一个强大的框架&#xff0c;使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件&#xff0c;确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这…

CCAA认证人员注册全国统一考试开始报名

备受瞩目的CCAA&#xff08;中国认证认可协会&#xff09;认证人员注册全国统一考试即将拉开报名序幕。 考试基本信息&#xff1a; 1&#xff09;报名网站网址&#xff1a;https://kaoshi.ccaa.org.cn/ 2&#xff09;考试报名系统自2024年6月17日12:00时起面向考生正式开通&…

c++编程(19)——STL(5)容器适配器

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 适配器adaptorstackqueuepriority_queue传送门&#xff1a; 适配器adaptor 适配器看起来像一个容器&#xff0c;实际上adaptor并不属于容器的范畴&#xff0c;更像是一种专门用于某种容器的接口。 常用的适…

智能不锈钢氮气柜温湿度氧含量控制介绍

智能不锈钢氮气柜通过集成精密的温湿度和氧含量控制系统&#xff0c;确保内部环境稳定在适宜存储敏感物料的条件。具体实现方式如下&#xff1a; 温度控制&#xff1a;智能氮气柜通常配备有精确的温度传感器以及加热或冷却系统。当内部温度偏离设定值时&#xff0c;系统会自动启…

0617_QT3

练习&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白部分this->setA…

Misc之图片隐写

前几天忙高数和c考试去了。。。Web毫无进展&#xff0c;学学这个放松一下 一、工具准备 这里目前使用的工具为kali上的工具和安装在电脑上的Winhex&#xff0c;010editor&#xff0c;Stegsolve 二、png图片隐写 这里我就直接用题目学习了&#xff0c;也是参考了csdn上大佬的…

一五三、MAC 安装MongoDB可视化工具连接

若没有安装brew包管理工具&#xff0c;在命令行输入安装命令 /bin/bash -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”上面步骤安装完成后&#xff0c;开始安装MongoDB&#xff0c;输入安装命令&#xff1a; brew tap mongodb/brewbrew u…

【前端】Nesj 学习笔记

1、前置知识 1.1 装饰器 装饰器的类型 declare type ClassDecorator <TFunction extends Function>(target: TFunction) > TFunction | void; declare type PropertyDecorator (target: Object, propertyKey: string | symbol) > void; declare type MethodDe…