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

题 目描述

开头和结尾都是元音字母(aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。比如.

  • 1.“a”、“aa"是元音字符串,其瑕疵度都为0
  • 2.“aiur"不是元音字符串(结尾不是元音字符)
  • 3.“abira”是元音字符串,其瑕疵度为2

给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。

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

输入描述

首行输入是一个整数,表示预期的瑕疵度flaw,取值范围[0,65535]。
接下来一行是一个仅由字符a-z和A-Z组成的字符串,字符串长度(0,65535]。

输出描述

输出为一个整数,代表满足条件的元音字符子串的长度。

示例1
输入:
0
asdbuiodevauufgh
输出:

3
说明:
满足条件的最长元音字符子串有两个,分别为uio和auu,长度为3.

示例2
输入:
2
aeueo
输出:

0
说明:
没有满足条件的元音字符子串,输出0

示例3
输入:

1
aabeebuu
输出:

5
说明:
满足条件的最长元音字符子串有两个,分别为aabee和eebuu,长度为5

public class 最长的指定瑕疵度的元音子串Main {public static void main(String[] args) {// 定义一个HashSet存储元音字符,用于快速查找char[] chars = "aeiouAEIOU".toCharArray();HashSet<Character> st = new HashSet<>();for (char c: chars){st.add(c);}// 使用Scanner来读取输入Scanner in = new Scanner(System.in); int cnt = in.nextInt(); // 读取预期的瑕疵度StringBuilder sb = new StringBuilder(in.next()); // 读取字符串int n = sb.length(); // 字符串长度sb.insert(0, ' '); // 前面插入空格,使索引从1开始sb.append(' '); // 后面插入空格,使索引到n结束// 创建一个列表存储所有非元音字符的位置List<Integer> v = new ArrayList<>();v.add(0); // 初始化,加入0作为首元素for (int i = 1; i <= n; i++) {// 如果当前字符不是元音,则记录其位置if (!st.contains(sb.charAt(i))) {v.add(i);}}v.add(n+1);int ans = 0; // 初始化答案为0// 遍历非元音字符的位置,找出最长的满足瑕疵度的元音子串for (int p = 1; p + cnt < v.size(); p++) {int pl = v.get(p-1)+1, pr = v.get(p+cnt)-1;if (st.contains(sb.charAt(pl)) && st.contains(sb.charAt(pr)))   // 保证两端是元音字符ans = Math.max(ans, pr - pl + 1);}// 输出结果System.out.println(ans);}
}

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

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

相关文章

RocketMQ 集群与高可用性:深入解析与实践指南

目录 前言 RocketMQ集群与高可用性 一、主从同步机制 1.1 使用场景 1.2 原理机制 1.3 数据同步流程 1.4 优缺点 二、RocketMQ 故障转移机制&#xff08;Failover&#xff09; 2.1 使用场景 2.2 原理机制 2.3 故障转移的注意事项 2.4 优缺点 三、主从架构和故障转移…

MySQL的 where 1=1会不会影响性能

MySQL的 where 11会不会影响性能&#xff1f; 一、引言 在编写SQL语句时&#xff0c;我们经常会遇到需要动态拼接查询条件的情况&#xff0c;尤其是在使用MyBatis这类ORM框架时。为了简化代码&#xff0c;很多开发者会使用where 11来开始他们的查询语句&#xff0c;然后通过程…

VSCode学习笔记

1. 快捷键 KeyDescriptionPlatformF1打开命令面板&#xff08;Command Palette&#xff09;Win10Shift Delete剪切当前光标所在的代码行Win10 2. 文件 2.1 在文件列表中定位当前文件 操作路径&#xff1a;右键单击文件名 ⇒ 在右键菜单中点击 【Reveal in Explorer View】

云计算第四阶段----CLOUD 01-03

CLOUD Day01 一、虚拟化平台搭建 虚拟化技术产品介绍 #黄线标注的&#xff0c;都是比较主流且常用的虚拟化平台。 虚拟化与云计算的关系 虚拟化是一种技术&#xff0c;它允许在单个物理服务器上创建和运行多个虚拟机&#xff08;VMs&#xff09;&#xff0c;每个虚拟机都有其…

python编程知识(实现数据加密和解密)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

JavaScript使用高德API显示地图

前言 在JavaScript中&#xff0c;使用Leaflet库显示地图是一种常见的做法。Leaflet是一个开源的JavaScript库&#xff0c;用于在Web应用程序中创建互动地图。它非常轻量级&#xff0c;易于使用&#xff0c;并且提供了多种功能&#xff0c;使开发者能够轻松地将地图集成到他们的…

银行结算业务

1.1 银行本票 银行本票是由银行签发的,承诺自己在见票时无条件支付票款给收款人或持票人的业务。银行本票按票面划分为定额本票和不定额本票,按币种划分为人民币银行本票和外币银行本票。人民币银行本票仅在同一交换区域内使用,资金清算利用当地人民银行组织的资金清算形式…

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略(可视化代码)

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次! 完整论文+代码+数据结果链接在文末! 订阅后可查看代码文件 1、描述性统计分析 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy…

用SpringBoot API实现识别pdf文件是否含有表格

要使用Spring Boot API 实现一个识别 PDF 文件是否含有表格的功能&#xff0c;你可以结合 PDF 解析库&#xff08;如 Apache PDFBox&#xff09;来解析 PDF 文件内容&#xff0c;并通过分析文本或线条来判断 PDF 是否包含表格。然后使用 Spring Boot 提供的 REST API 来实现上传…

Windows——不利用任何软件,打开局域网服务器的文件夹方法

第一步&#xff1a; windows 键 R 键&#xff0c;打开左下角运行窗口 第二步&#xff1a; \\ip地址

Android14音频进阶之定制ramdisk文件系统init服务(八十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

Three 渲染器(二)

WebGL1Renderer 构造函数 WebGL1Renderer( parameters : Object ) Creates a new WebGL1Renderer. 属性 See the base WebGLRenderer class for common properties. 方法 See the base WebGLRenderer class for common methods. WebGLRenderTarget render target是一个…

vite+vue3+typescript+elementPlus前端实现电子证书查询系统

实现背景&#xff1a;之前电子证书的实现是后端实现的&#xff0c;主要采用GD库技术&#xff0c;在底图上添加文字水印和图片水印实现的。这里采用前端技术实现电子证书的呈现以及点击证书下载&#xff0c;优点是&#xff1a;后端给前端传递的是一组数据&#xff0c;不需要传证…

数据分析训练模型后输出模型评估报告

数据分析训练模型后输出模型评估报告 1、模型评估指标 1.1、概念: A:n个正样本,检测到是真值的数量 B:m个负样本,检测到是真值的数量 C:n个正样本,检测到假值的数量 D:m个负样本,检测到假值的数量 1.2、准确率(Accuracy) 正确预测的样本数量与总样本数量的比值。…

笔记整理—内核!启动!—kernel部分(1)从汇编阶段到start_kernel

kernel起始与ENTRY(stext)&#xff0c;和uboot一样&#xff0c;都是从汇编阶段开始的&#xff0c;因为对于kernel而言&#xff0c;还没进行栈的维护&#xff0c;所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。 内核起始部分代码被解压代码调用&#xff0c…

Pinterest账号被封?试试这几种解封方法

Pinterest作为一个充满创意与灵感的视觉社交平台&#xff0c;吸引着大量用户和企业前来展示、收藏和分享他们的作品。然而&#xff0c;如同其他社交媒体平台一样&#xff0c;Pinterest也设立了一套严格的使用规则和监测机制&#xff0c;以保障平台内容的质量和用户的良好体验。…

2024 年keil5 注册机

注册鸡地址 百度网盘

Helm Deploy Online Rancher v2.9.1

文章目录 准备安装查看下载 准备 $ kubectl get node NAME STATUS ROLES AGE VERSION kube-master01 Ready control-plane 19d v1.29.5 kube-node01 Ready <none> 19d v1.29.5 kube-node02 Ready <none&…

SpringBoot+Redis极简整合

1 前言 Redis是现在最受欢迎的NoSQL数据库之一&#xff0c;下面将以最简洁的代码演示&#xff0c;在SpringBoot中使用redis。 2 下载安装Redis 2.1 下载 Redis3.x windows安装版下载地址 2.2 安装到任意位置 一直Next到完即可。 2.3 启动 打开安装目录&#xff0c;点击…

Bootstrap前端框架Glyphicons字体图标

115工具网收集提供Bootstrap前端框架Glyphicons字体图标库对照表​​​​​​​&#xff0c;Bootstrap前端UI,Glyphicons字体图标调用,Bootstrap按钮字体图标对照表,包括250多个来自Glyphicon Halflings的字体图标.项目中引用Bootstrap相关文件后即可直接调用下列图标class&quo…