【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 最长的指定瑕疵度的元音子串(100分) - 三语言AC题解(Python/Java/Cpp)

news2025/2/25 17:59:13

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

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

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

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

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1062

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

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • ✈️ 最长的指定瑕疵度的元音子串
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 样例说明
      • 样例输入
      • 样例输出
      • 样例说明
      • 样例输入
      • 样例输出
      • 样例说明
      • 数据范围
      • 题解
      • 参考代码

✈️ 最长的指定瑕疵度的元音子串

问题描述

K小姐正在研究一个字符串问题。在这个问题中,如果一个字符串的开头和结尾都是元音字母( a a a e e e i i i o o o u u u A A A E E E I I I O O O U U U),那么它就被称为元音字符串。元音字符串中非元音字母的数量定义为该字符串的瑕疵度。例如:

  • a a a” 和 “ a a aa aa” 都是元音字符串,它们的瑕疵度为 0 0 0
  • a i u r aiur aiur” 不是元音字符串,因为它的结尾不是元音字母。
  • a b i r a abira abira” 是一个元音字符串,它的瑕疵度为 2 2 2

现在,给定一个字符串和一个目标瑕疵度,请你找出具有指定瑕疵度的最长元音子串,并输出其长度。如果不存在满足条件的元音子串,则输出 0 0 0

注意:字符串中任意连续的字符组成的子序列称为该字符串的子串。

输入格式

第一行包含一个整数 f l a w flaw flaw,表示目标瑕疵度,满足 0 ≤ f l a w ≤ 65535 0 \leq flaw \leq 65535 0flaw65535

第二行包含一个字符串 s t r str str,仅由小写字母和大写字母组成,满足 1 ≤ ∣ s t r ∣ ≤ 65535 1 \leq |str| \leq 65535 1str65535

输出格式

输出一个整数,表示满足条件的最长元音子串的长度。如果不存在满足条件的元音子串,则输出 0 0 0

样例输入

0
asdbuiodevauufgh

样例输出

3

样例说明

在给定的字符串中,满足条件的最长元音子串有 “ u i o uio uio” 和 “ a u u auu auu”,它们的长度都为 3 3 3

样例输入

2
aeueo

样例输出

0

样例说明

在给定的字符串中,不存在满足条件的元音子串,因此输出为 0 0 0

样例输入

1
aabeebuu

样例输出

5

样例说明

在给定的字符串中,满足条件的最长元音子串有 “ a a b e e aabee aabee” 和 “ e e b u u eebuu eebuu”,它们的长度都为 5 5 5

数据范围

  • 0 ≤ f l a w ≤ 65535 0 \leq flaw \leq 65535 0flaw65535
  • 1 ≤ ∣ s t r ∣ ≤ 65535 1 \leq |str| \leq 65535 1str65535

题解

题目要求找出指定瑕疵度的最长元音子串。首先筛选出所有元音字符的位置,然后使用双指针技术维护当前子串的瑕疵度。如果瑕疵度小于指定值,右指针右移;如果瑕疵度大于指定值,左指针右移;如果恰好等于指定值,更新答案并尝试扩展右指针以探索可能的更长子串。

参考代码

  • Python
def longest_vowel_substring(flaw, s):
    vowels = set("aeiouAEIOU")
    indices = [i for i, char in enumerate(s) if char in vowels]
    max_length = 0
    l = 0

    for r in range(len(indices)):
        while indices[r] - indices[l] - (r - l) > flaw:
            l += 1
        if indices[r] - indices[l] - (r - l) == flaw:
            max_length = max(max_length, indices[r] - indices[l] + 1)

    return max_length

flaw = int(input())
s = input()
print(longest_vowel_substring(flaw, s))
  • Java
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int flaw = sc.nextInt();
        String s = sc.next();
        System.out.println(getResult(flaw, s));
    }

    public static int getResult(int flaw, String s) {
        Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
        List<Integer> indices = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if (vowels.contains(s.charAt(i))) indices.add(i);
        }

        int maxLen = 0;
        int l = 0;
        for (int r = 0; r < indices.size(); r++) {
            while (indices.get(r) - indices.get(l) - (r - l) > flaw) l++;
            if (indices.get(r) - indices.get(l) - (r - l) == flaw) {
                maxLen = Math.max(maxLen, indices.get(r) - indices.get(l) + 1);
            }
        }
        return maxLen;
    }
}
  • Cpp
#include <iostream>
#include <vector>
#include <set>
#include <string>
using namespace std;

int longestVowelSubstring(int flaw, const string& s) {
    set<char> vowels{'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
    vector<int> indices;
    
    // 收集所有元音字符的位置
    for (int i = 0; i < s.length(); i++) {
        if (vowels.find(s[i]) != vowels.end()) {
            indices.push_back(i);
        }
    }
    
    int maxLen = 0;
    int l = 0;
    
    // 使用双指针技术来找到满足瑕疵度的最长元音子串
    for (int r = 0; r < indices.size(); r++) {
        // 调整左指针直到子串的瑕疵度不大于指定瑕疵度
        while (indices[r] - indices[l] - (r - l) > flaw) {
            l++;
        }
        // 检查当前元音子串是否满足瑕疵度要求
        if (indices[r] - indices[l] - (r - l) == flaw) {
            maxLen = max(maxLen, indices[r] - indices[l] + 1);
        }
    }
    
    return maxLen;
}

int main() {
    int flaw;
    string s;
    
    // 从标准输入读取瑕疵度和字符串
    cin >> flaw;
    cin >> s;
    
    // 计算和输出结果
    cout << longestVowelSubstring(flaw, s) << endl;
    
    return 0;
}

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

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

相关文章

【windows|007】DHCP服务详解

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 ​ &#x1f3c5;阿里云ACE认证高级工程师 ​ &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社…

IDEA配置maven,热部署,生命周期和插件,maven工程的聚合和继承

1.maven配置 先来说maven配置 首先到官网下载 https://mvnrepository.com/search?qmaven 解压就可以 然后解压完会生成一个apache-maven-3.3.9的文件 我们配置一下阿里云的镜像仓库 D:\maven\apache-maven-3.3.9\conf 我的是这个&#xff0c;你们的和我不一样&#xff0c…

Talk|香港科技大学冯宸:高效自主的大尺度场景空中覆盖与重建

本期为TechBeat人工智能社区第601期线上Talk。 北京时间6月19日(周三)20:00&#xff0c;香港科技大学冯宸博士生—冯宸的Talk已经准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “高效自主的大尺度场景空中覆盖与重建”&#xff0c;他围绕团队在利用无人机…

【C++题解】1324 - 扩建鱼塘问题

问题&#xff1a;1324 - 扩建鱼塘问题 类型&#xff1a;分支问题 题目描述&#xff1a; 有一个尺寸为 mn 的矩形鱼塘&#xff0c;请问如果要把该鱼塘扩建为正方形&#xff0c;那么它的面积至少增加了多少平方米&#xff1f; 输入&#xff1a; 两个整数 m 和 n 。 输出&…

AI 已经在污染互联网了。。赛博喂屎成为现实

大家好&#xff0c;我是程序员鱼皮。这两年 AI 发展势头迅猛&#xff0c;更好的性能、更低的成本、更优的效果&#xff0c;让 AI 这一曾经高高在上的技术也走入大众的视野&#xff0c;能够被我们大多数普通人轻松使用&#xff0c;无需理解复杂的技术和原理。 其中&#xff0c;…

大语言模型的微调方法_大语言模型六种微调方法

01 引言 自2018年BERT发布以来&#xff0c;“预训练微调”成为语言模型的通用范式。以ChatGPT为代表的大语言模型针对不同任务构造Prompt来训练&#xff0c;本质上仍然是预训练与微调的使用范式。千亿规模的参数微调需要大量算力&#xff0c;即使提供了预训练的基座模型&…

RPM命令和YUM命令

目录 一、RPM软件包 1.1、RPM概述 1.2、查询已安装的rpm软件信息 1.3、查询未安装的 RPM 软件包文件中信息 1.4、安装、升级、卸载 RPM 软件包 二、YUM常规命令 三、手动配置Apache&#xff08;http&#xff09;服务 3.1、前提条件 3.2、开始配置 3.3、开启验证服务 …

YOLOv10改进 | 注意力篇 | YOLOv10引入iRMB

1. iRMB介绍 1.1 摘要:本文重点关注开发现代、高效、轻量级的模型来进行密集预测,同时权衡参数、FLOP 和性能。 反向残差块(IRB)作为轻量级 CNN 的基础设施,但基于注意力的研究尚未认识到对应的部分。 这项工作从统一的角度重新思考高效IRB和Transformer有效组件的轻量级…

更换域名流程记录

华为云的服务器&#xff0c;阿里云购买的域名。 1.购买域名 2.在域名服务商绑定服务器ip&#xff08;以阿里云为例&#xff09; 控制台->域名控制台->域名列表->点击域名->域名解析->添加记录 记录类型填A , 主机记录“”或“www”&#xff0c;记录值填服务器i…

自养号测评助亚马逊、速卖通店铺快速提升商品流量与转化率?

在全球化的浪潮下&#xff0c;跨境电商行业如日中天&#xff0c;速卖通作为行业的领军者&#xff0c;汇聚了世界各地的消费者与商家。要想在速卖通平台上成功打造爆款产品&#xff0c;我们需从多个维度出发&#xff0c;精心策划与实施。 一、产品选择的艺术 在速卖通上&#…

Go web框架|Beego、Gin、Echo、Iris等干货教程

Go 是一门正在快速增长的编程语言&#xff0c;专为构建简单、快速且可靠的软件而设计。golang提供的net/http库已经很好了&#xff0c;对于http的协议的实现非常好&#xff0c;基于此再造框架&#xff0c;也不会是难事&#xff0c;因此生态中出现了很多框架。 本篇文章主要介绍…

平安养老险浙江分公司开展防范非法集资宣传,守护群众“钱袋子”

为进一步提高群众对非法集资的防范意识的鉴别能力&#xff0c;近期&#xff0c;平安养老保险股份有限&#xff08;以下简称“平安养老险”&#xff09;浙江分公司以“守住钱袋子、护好幸福家”为宣传主题&#xff0c;深入居民社区、办公职场等公共场所开展的宣传活动。 平安养老…

微信小程序轮播图

效果图 详情可见 微信小程序 参照&#xff1a;swiper | uni-app官网 代码&#xff1a; <!--轮播图-- > <swiper interval"2000" autoplay"true" circular"true" style"height: 300px;"><swiper-item style&qu…

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一&#xff1a;引入到源码3.4.2 方式二&#xff1a;插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中&#xff0c;…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09;1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

ElementPlus组件与图标按需自动引入

按需自动引入组件 1. 安装ElementPlus和自动导入ElementPlus组件的插件 pnpm install element-plus pnpm install -D unplugin-vue-components unplugin-auto-import 2. vite.config.ts进行修改 import { defineConfig } from vite import vue from vitejs/plugin-vue // …

从boost库到时间戳

一、以问题引入 授权证书一般有到期时间的说法&#xff0c;公司测试同事在测试更新后的证书时&#xff0c;将系统时间调到了2050年&#xff0c;重启服务后发现各个进程的cpu占用率特别高&#xff1b;结合日志分析&#xff0c;发现这些进程 都在不停的刷heartbeat()的日志&#…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

12.2 Go 编写测试代码

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

web3技术的特点

Web1、Web2和Web3是互联网发展的三個阶段&#xff0c;它们在架构、数据所有权、应用模式等方面都有着本质的区别。需要注意的是&#xff0c;Web3 仍处于早期发展阶段&#xff0c;其技术和应用场景还在不断探索和完善。Web3 的最终形态和影响还有待观察。北京木奇移动技术有限公…