【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.mfbz.cn/a/717558.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】智能手写数字识别系统

文章目录 一&#xff0e;实验课题背景说明1.1实验目的1.2实验环境1.2.1安装PyTorch1.2.2安装其他必要的库 二&#xff0e;模型说明2.1模型概述2.2模型结构 三&#xff0e;数据说明3.1 输入数据3.1.1输入数据特征3.1.2输入数据维度3.1.3输入数据预处理 3.2 数据格式3.2.1输出数据…

qt 实现模拟实际物体带速度的移动(水平、垂直、斜角度)——————附带完整代码

文章目录 0 效果1 原理1.1 图片旋转1.2 物体按照现实中的实际距离带真实速度移动 2 完整实现2.1 将车辆按钮封装为一个类&#xff1a;2.2 调用方法 3 完整代码参考 0 效果 实现后的效果如下 可以显示属性&#xff08;继承自QToolButton&#xff09;: 鼠标悬浮显示文字 按钮…

Bagging与Boosting的应用与优势

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

Excel 常用技巧(四)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件&#xff0c;可以用来制作电子表格、完成许多复杂的数据运算&#xff0c;进行数据的分析和预测&#xff0c;并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

【Python高级编程】Pickle实现AI算法训练的权重数据的保存

任务描述 代码实现 import pickle import time import os import numpy as np# 模拟耗时的权重计算过程 def calculate_weights():print("开始计算权重...")time.sleep(5) # 模拟耗时操作&#xff0c;暂停5秒以模拟计算过程weights np.random.rand(10, 10) # 随机…

python实践笔记(三): 异常处理和文件操作

1. 写在前面 最近在重构之前的后端代码&#xff0c;借着这个机会又重新补充了关于python的一些知识&#xff0c; 学习到了一些高效编写代码的方法和心得&#xff0c;比如构建大项目来讲&#xff0c;要明确捕捉异常机制的重要性&#xff0c; 学会使用try...except..finally&…

小区噪音监测管理系统设计

一、引言 随着城市化进程的加快&#xff0c;小区居民对于居住环境的要求日益提高。其中&#xff0c;噪音污染已成为影响居民生活质量的重要因素。因此&#xff0c;设计一套小区噪音监测管理系统&#xff0c;对于提升居民的生活品质和小区管理效率具有重要意义。本文将详细阐述…

如何拥有自己的微信小程序

如何拥有自己的微信小程序 ~~话先放在这里~~ 写在前面申请一个属于自己的小程序先去[微信开放平台](https://open.weixin.qq.com/home)申请一个你的小程序扫码申请新小程序小程序该记好的个人信息 安装微信开发者工具下载工具关联你的小程序请求域名配置发布小程序 BUY一个自己…

SQL:按用户名复制权限

生产系统中有一个模块是管理用户及菜单权限&#xff0c;它们是由3个数据表组成&#xff0c;关系及字段如下&#xff1a; 原来为每个用户添加菜单的访问权限时都是一个一个添加&#xff0c;但今天遇到有个新来的员工&#xff0c;需要具有与另一个员工相同的权限。新建一个用户后…

PS插件创成式填充功能全面测评:轻松实现AI修图新高度

大家好&#xff0c;我是你们的AIGC测评博主。今天&#xff0c;我将为大家带来一款ps插件创成式填充功能——深度体验 在图像处理领域&#xff0c;AI技术的应用已经越来越广泛。而创成式填充功能&#xff0c;无疑是其中的佼佼者。它利用AI技术&#xff0c;能够根据用户输入的关…

c语言——c51单片机——数码管

数码管&#xff1a; #include "reg51.h"void delay(unsigned int n) {while (n)--n; }void main(void) { //unsigned char num[] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,0x39, 0x5e, 0x79, 0x71, 0x00};unsigned int i 0…

坚持刷题|合并有序链表

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

雪花算法和UUID

目录 雪花算法概念优点和不足优点:缺点:解决方案代码示例 UUID优点与不足优点不足 两种算法的比较应用场景区别 雪花算法 概念 雪花算法是一个分布式id生成算法&#xff0c;它生成的id一般情况下具有唯一性。由64位01数字组成&#xff0c;第一位是符号位&#xff0c;始终为0。…

【leetcode刷题】面试经典150题 , 27. 移除元素

leetcode刷题 面试经典150 27. 移除元素 难度&#xff1a;简单 文章目录 一、题目内容二、自己实现代码2.1 方法一&#xff1a;直接硬找2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 2.2 方法二&#xff1a;排序整体删除再补充2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 三、…

大模型泡沫退去,谁能活到下半场?

前言 从今年3月开始&#xff0c;国内企业纷纷下场大模型&#xff0c;铆足劲秀肌肉&#xff0c;如今转向垂直行业淘金&#xff0c;试图争霸行业大模型。我们的心态也逐渐从看乐子&#xff0c;到严肃讨论。 在人工智能的世界&#xff0c;我们经历了众多的概念游戏&#xff0c;在…

shell编程——脚本入门

在编写脚本的时候指定解析器 在编写shell脚本时第一行以#&#xff01;/bin/bash开头指定解析器。 在shell脚本中使用echo语句来在屏幕中打印内容。 调用shell脚本的第一种方式 在shell脚本中以bash或者是sh脚本路径的方式来启动脚本。这种执行脚本的方式是在Linux操作系统的b…

【C++高阶】掌握C++多态:探索代码的动态之美

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C继承 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀继承 &#x1f4d2;1. 多态的定义及实现&…

【总线】AXI总线:FPGA设计中的通信骨干

目录 AXI4&#xff1a;高性能地址映射通信的基石 AXI4-Lite&#xff1a;轻量级但功能强大的通信接口 AXI4-Stream&#xff1a;高速流数据传输的利器 结语&#xff1a;AXI总线在FPGA设计中的重要性 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计…

Go 并发控制:RWMutex 实战指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

怎么管理网站的数据

每一个网站都会有很多的数据&#xff0c;这些数据的来源&#xff0c;有一些是直接把数据存放在运行文件里面&#xff0c;有一些则是存放在数据库里面&#xff0c;如MySQL、SQL Server等等&#xff0c;这些数据库都是需要安装指定的数据库环境才能运行起来&#xff0c;数据库的存…