【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
文章目录
- 一、题目
- 题目描述
- 输入输出
- 样例1
- 样例2
- 一、代码与思路
- 🧠C++语言思路
- ✅C++代码
一、题目
参考:https://sars2025.blog.csdn.net/article/details/139492358
题目描述
◎ 给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第k长的子串的长度,相同字母只取最长的那个子串
输入输出
输入
第一行有一个子串(1<长度<=100),只包含大写字母
第二行为k的值
输出
输出连续出现次数第k多的字母的次数
样例1
输入
AAAAHHHBBCDHHHH
3
输出
2
说明:
同一字母连续出现的最多的是A和H,出现四次;
第二多的是H, 3次,但是H已经存在4个连续的,故不考虑;
下个最长子串是BB,所以最终答案应该输出2
样例2
输入
AABAAA
2
输出
1
说明:
同一字母连续出现的最多的是A,三次;
第二多的还是A,两次,但A已经存在最大连续次数三次,故不考虑;
下个最长子串是B,所以输出1
一、代码与思路
🧠C++语言思路
1、首先使用一个unordered map(哈希表)maxCounts来存储每个字符的最长连续出现次数。然后,通过遍历字符串s,记录当前连续
子串的字母和长度。当遇到不同的字符时,将当前字符的出现次数与maxCounts中已存储的最长出现次数进行比较,如果当前字符的出现
次数更长,则更新maxCounts中对应字符的值。
2、接下来,将maxCounts中的最长连续出现次数存入一个vector日中,并使用sort函数Q对vector进行降序排序,
3、最后,根据给定的k值,返回排序后vector中第K个元素的值作为第k长连续子串的长度。如果k值超过了vector的长度,则返回-1,表示
没有第k长的连续子串。
✅C++代码
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <string>using namespace std;int findKthLongestSubstring(string s, int k) {unordered_map<char, int> maxCounts; // 存储每个字母的最长连续出现次数char currentChar = s[0]; // 当前连续子串的字母int currentCount = 1; // 当前连续子串的长度for (char c : s.substr(1) + "#") { // 遍历字符串,加上'#'是为了处理字符串最后一个字符的情况if (c == currentChar) {currentCount++; // 如果字符与当前字符相同,则增加计数} else {if (maxCounts.find(currentChar) == maxCounts.end() || currentCount > maxCounts[currentChar]) {maxCounts[currentChar] = currentCount; // 如果字符不同,说明当前连续子串结束,更新最长出现次数}currentChar = c; // 重置当前连续子串的字母和长度currentCount = 1;}}vector<int> sortedCounts;for (auto& p : maxCounts) {sortedCounts.push_back(p.second); // 将最长连续出现次数存入vector}sort(sortedCounts.begin(), sortedCounts.end(), greater<int>()); // 将最长连续出现次数按照次数降序排列return (k <= sortedCounts.size()) ? sortedCounts[k - 1] : -1; // 根据k值获取第k长的子串长度
}int main() {// 读取输入string inputString;getline(cin, inputString);int k;cin >> k;// 调用函数并输出结果cout << findKthLongestSubstring(inputString, k) << endl;return 0;
}相关文章:
【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
文章目录 一、题目题目描述输入输出样例1样例2 一、代码与思路🧠C语言思路✅C代码 一、题目 参考:https://sars2025.blog.csdn.net/article/details/139492358 题目描述 ◎ 给定一个字符串,只包含大写字母,求在包含同一字母的子串…...
C# 综合示例 库存管理系统4 classMod类
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 在《库存管理系统》中使用classMod类来保存全局变量。 变量定义和含义,请详见下面的源代码: public class classMod { //数据库路径...
ZooKeeper配置优化秘籍:核心参数说明与性能优化
#作者:张桐瑞 文章目录 tickTime:Client-Server通信心跳时间initLimit:Leader-Follower初始通信时限syncLimit:Leader-Follower同步通信时限dataDir:数据文件目录clientPort:客户端连接端口服务器名称与地…...
详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别
详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类:QMutex 和 QMutexLocker。 🧱 一、什么是 QMutex? QMutex 是 Qt 中的互斥锁(mutex)类,用于防止多个…...
PCB 过孔铜厚的深入指南
***前言:在上一期的文章中介绍了PCB制造的工艺流程,但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么,为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…...
【ES实战】Elasticsearch中模糊匹配类的查询
Elasticsearch中模糊匹配类的查询 文章目录 Elasticsearch中模糊匹配类的查询通配符查询前缀匹配查询正则匹配查询标准的正则操作特殊运算符操作 模糊化查询Fuzziness text类型同时配置keyword类型 Elasticsearch中模糊类查询主要有以下 Wildcard Query:通配符查询P…...
Spring Security认证流程
认证是Spring Security的核心功能之一,Spring Security所提供的认证可以更好地保护系统的隐私数据与资源,只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置,开发者也可以根据自己实际的环境进行自定义身…...
TXPOLARITY/RXPOLARITY设置
TXPOLARITY/RXPOLARITY:该端口用来反向输出数据的极性。 0:表示不反向。TXP是正,TXN是负; 1:标识反向。TXP是负,TXN是正; 如下图所示:...
2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)
今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题,可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…...
优考试V4.20机构版【可注册】
优考试V4.20机构版,可通过注册机完美激活。 优考试机构版是一个功能强大的在线考试系统,适用于各种 考试场景,包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点: 多层级管理:优考试机…...
携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放
在4月23日“世界读书日”之际,阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题,借助阿里妈妈的AIGC能力,以AI链接古今,打开阅读典籍新方式,引起不少人强烈兴趣。据悉&…...
Spark,配置hadoop集群2
1.建立新文件,编写脚本程序 在hadoop101中操作,在/root/bin下新建文件:myhadoop,输入如下内容: 2.分发执行权限 保存后退出,然后赋予脚本执行权限 [roothadoop101 ~]$ chmod x /root/bin/myhadoop 像下图…...
4.1 融合架构设计:LLM与Agent的协同工作模型
大型语言模型(Large Language Models, LLMs)与智能代理(Agent)的融合架构已成为人工智能领域推动企业智能化的核心技术。这种协同工作模型利用LLM的语言理解、推理和生成能力,为Agent提供强大的知识支持,而…...
MMsegmentation第一弹-(认识与安装)
前言 在刚接触MMsegmentation的时候,我是怎么看都看不明白,那个过程实在是太痛苦了,所以我当时就想着一定要把这个写成文章,希望后来者能很轻松的就上手。该系列文章不涉及框架的底层原理,仅以一个使用者的身份带领读…...
12.无线网络安全入门
无线网络安全入门 第一部分:无线网络基础与风险第二部分:Wi-Fi攻击方式第三部分:无线网络安全实践总结 目标: • 理解无线网络的基本原理和安全风险 • 掌握Wi-Fi常见的攻击方式 • 通过实践提升对无线网络安全的认识和防护能力 …...
React19源码阅读之commitRoot
commitRoot入口 在finishConcurrentRender函数,commitRootWhenReady函数,commitRoot函数。 commitRoot流程图 commitRoot函数 commitRoot 函数是 React 渲染流程中用于提交根节点的关键函数。它的主要作用是设置相关的优先级和状态,然后调…...
目标检测:视觉系统中的CNN-Transformer融合网络
一、背景 无人机(UAVs)在城市自动巡逻中发挥着重要作用,但它们在图像识别方面面临挑战,尤其是小目标检测和目标遮挡问题。此外,无人机的高速飞行要求检测系统具备实时处理能力。 为解决这些问题,我们提出…...
Turso:一个基于 libSQL的分布式数据库
Turso 是一个完全托管的数据库平台,支持在一个组织中创建高达数十万个数据库,并且可以复制到任何地点,包括你自己的服务器,以实现微秒级的访问延迟。你可以通过Turso CLI(命令行界面)管理群组、数据库和API…...
深度学习前沿 | TransNeXt:仿生聚合注意力引领视觉感知新时代
目录 1. 引言 2. 背景与挑战 3. TransNeXt 核心创新 3.1 像素聚合注意力(PAA) 3.2 长度缩放余弦注意力(LSCA) 3.3 卷积 GLU(ConvGLU) 4. 模型架构详解 5. 实验与性能评估 5.1 图像分类(I…...
C语言-函数-1
以下是我初学C语言的笔记记录,欢迎在评论区留言补充 一,函数分为几类 * 函数分为两类: 一类是库函数;一类是自定义函数 * 库函数: 系统自己带的,在使用时候,要用到头文件; 查询库函…...
卡尔曼滤波解释及示例
卡尔曼滤波的本质是用数学方法平衡预测与观测的可信度 ,通过不断迭代逼近真实状态。其高效性和鲁棒性,通常在导航定位中,需要融合GPS、加速度计、陀螺仪、激光雷达或摄像头数据,来提高位置精度。简单讲,卡尔曼滤波就是…...
openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解
1 先看openwrt时间,一定要保证时间和浏览器和服务器是一致的,不然无法更新 2 openwrt设置旁路由前先测试下,路由器能否ping通主路由,是否能够连接外网,好多旁路由设置完了,发现还不能远程好多就是旁路由本…...
Redis--预备知识以及String类型
目录 一、预备知识 1.1 基本全局命令 1.1.1 KEYS 1.1.2 EXISTS 1.1.3 DEL 1.1.4 EXPIRE 1.1.5 TTL 1.1.6 TYPE 1.2 数据结构以及内部编码 1.3 单线程架构 二、String字符串 2.1 常见命令 2.1.1 SET 2.1.2 GET 2.1.3 MGET 2.1.4 MSET 2.1.5 SETNX 2.2 计数命令 2.2.1 INCR 2.2.2…...
Redis 及其在系统设计中的作用
什么是Redis Redis 是一个开源的内存数据结构存储系统,可用作数据库、缓存和消息代理。它因其快速的性能、灵活性和易用性而得到广泛应用。 Redis 数据存储类型 Redis 允许开发人员以各种数据结构(例如字符串、位图、位域、哈希、列表、集合、有序集合…...
UEC++第10天|UEC++获取对象、RTTI是C++
最近在写UEC项目,这里写几个案例里的问题,还在学习阶段 1. 如何获取小鸟对象? void AFlappyBirdGameModeBase::BeginGame() { // 让管道动起来PipeActor->SetMoveSpeed();// 让小鸟开始飞行// 如何获取到小鸟对象APawn* Pawn UGameplayS…...
【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)
更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、markitdown概述1.1 markitdown介绍1.2 MarkItDown支持的文件1.3 为什么是Markdown?二、markitdown安装2.1 pip方式安装2.2 源码安装2.3 docker方式安装三、基本使用3.1 命令行方式3.2 可选依赖项配置3.3 插件方…...
爬虫-oiwiki
我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)つもり 计划/打算(2&a…...
强化学习核心原理及数学框架
1. 定义与核心思想 强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境(Environment)的持续交互来学习最优决策策略的机器学习范式。其核心特征为: 试错学习&#x…...
【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析
在现代Web应用开发中,身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案,其中Session/Cookie和JWT(JSON Web Token)是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…...
