【华为OD题库-081】最长的元音子串长度-Java
题目
题目描述:
定义当一个字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)组成,
称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0,
字符串中任意一个连续字符组成的子序列称为该字符串的子串
输入描述:
一个字符串其长度0<length ,字符串仅由字符a-z或A-Z组成
输出描述:
一个整数,表示最长的元音字符子串的长度
示例1:
输入
asdbuiodevauufgh
输出
3
说明:
最长的元音字符子串为uio和auu长度都为3,因此输出3
思路
正则表达式
利用正则表达式,找到所有匹配的子串,利用matcher.end-matcher.start可以计算当前匹配的长度。最后统计最长长度即可
遍历统计
传统的遍历,找到第一个匹配的字符,然后计算当前有多少个连续匹配的字符,最后得到最大长度即可
题解
正则表达式
package hwod;import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TheLongestVowelSubStr {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println(theLongestVowelSubStr(s));}private static int theLongestVowelSubStr(String s) {int res = 0;Pattern p = Pattern.compile("[aeiouAEIOU]+");Matcher matcher = p.matcher(s);while (matcher.find()) {res = Math.max(res, matcher.end() - matcher.start());}return res;}
}
遍历统计
package hwod;import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TheLongestVowelSubStr {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println(theLongestVowelSubStr(s));}private static int theLongestVowelSubStr(String s) {s = s.toLowerCase();List<Character> list = Arrays.asList('a', 'e', 'i', 'o', 'u');int res = 0;for (int i = 0; i < s.length(); i++) {if (list.contains(s.charAt(i))) {int j = i + 1;while (j < s.length() && list.contains(s.charAt(j))) {j++;}res = Math.max(res, j - i);i = j - 1;}}return res;}
}
推荐
如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。
相关文章:

【华为OD题库-081】最长的元音子串长度-Java
题目 题目描述: 定义当一个字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)组成, 称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成…...

第9节:Vue3 指令
如何在UniApp中使用Vue3的指令: <template> <view> <!-- 使用指令 --> <text v-show"isVisible" click"toggleVisibility">点击隐藏/显示</text> <button v-on:click"incrementCount">点击…...

B028-JDBC基础
目录 什么是JDBCJDBC引入持久化JDBC规范 使用JDBC完成CRUDJDBC创建表JDBC CRUD和优化 DAO层的实现 什么是JDBC JDBC引入 Java代码操作数据库的唯一技术:-- JDBC ( java database connection ) 持久化 持久化(persistence):把数据保存到可掉电式存储设…...

ngixn 准备
确认yum可用,确认防火墙,确认SELinux 一项安装 yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel参数: gcc:编译依赖gcc环境 pcre:PCRE(Perl Compatible Regular Expressions)是一…...

生活小记录
上个月项目总算上线了,节奏也慢慢调整正常。发现自己好久没有记录生活点滴了,正好写写。其实,最近这段日子发生的事情还是挺多的。 流感 媳妇11.24得流感,这件事情特别好笑,大晚上她和我妹妹想喝酒试试,结…...

Diary22-全网最全的CSS3.0讲解
CSS学习 1.认识CSS 1.1什么是CSS CSS:Cascading Style Sheet——层叠级联样式表 CSS:表现(美化网页) 字体;颜色;边距;高度;宽度;背景图片;网页定位&…...

LAMP和分离式LNMP部署
目录 一.什么是LAMP? 二.安装LAMP 先安装apache,httpd网页服务: 接着安装mysql: 安装php: 创建论坛: 三.安装分布式LNMP: 先安装nginx: 到另一台主机安装php: …...

基于Java房屋租赁管理系统
基于Java房屋租赁管理系统 功能需求 1、房源信息管理:系统需要能够记录和管理所有房源的详细信息,包括房屋地址、房屋面积、租金、付款方式、房屋类型等。管理员应该可以添加、编辑和删除房源信息。 2、租户信息管理:系统需要能够记录和管…...

windows安装protoc、protoc-gen-go、protoc-gen-go-grpc
文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1,下载:https://github.com/google/protobuf/releases 下载对应的protoc,注意选择windows 2,下好之后解压就行,然后把bin目录加入到环境…...

macOS 获取文件夹大小
macOS 获取文件夹大小 获取文件夹大小的扩展如下: extension URL {var fileSize: Int? { // in bytesdo {let val try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAll…...

Ultimate VFX
Ultimate VFX 构建套件:...

一个通用游戏后台的设计模式实践总结
搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。 逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现…...

Kubernetes - 为什么 K8S 在容器里不能调用自己?
问题描述 最近遇到一个神奇的现象,在 K8S 的 POD 容器中,比如 pod name:mini-appnamespace:devport:5050 那么,是无法在 mini-app 容器里执行以下命令,如果执行,会一直卡在这条命…...

电机:有刷直流电机的原理
一、什么是有刷直流电机 直流有刷电机(Brushed DC Motor),定子是用永磁铁或者线圈做成,以形成固定磁场。在定子一端上有固定碳刷,或者铜刷,负责把外部电流引入转子线圈。而转子是由线圈构成,线…...

小黑子——springBoot基础
springBoot简单学习 一、SpringBoot简介1.1 springBoot快速入门1.1.1 开发步骤1.1.2 对比1.1.3 官网构建工程1.1.3 SpringBoot工程快速启动 1.2 springBoot概述1.2.1 起步依赖I. 探索父工程II. 探索依赖III. 小结 1.2.2 程序启动1.2.3 切换web服务器-jetty 二、配置文件2.1 配置…...

Flink流批一体计算(24):Flink SQL之mysql维表实时关联
目录 1.维表 2.数据准备 创建源数据 创建维度表 创建Sink表 3.配置任务 Flink SQL创建kafka源表 Flink SQL创建MySQL维表 Flink SQL创建MySQL结果表 编写计算任务 核验数据 1.维表 目前在实时计算的场景中,大多数都使用过MySQL、Hbase、redis作为维表引擎…...

鸿蒙(HarmonyOS)应用开发——从网络获取数据(题目答案)
判断题 1.在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。 错误(False) 2.使用http模块发起网络请求后,可以使用destroy方法中断网络请求。 正确(True) 3.Web组件onConfirm(callback: (event?: { url: …...

力扣:197. 上升的温度(Python3)
题目: 表: Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯一值的列。 该表…...

uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!
(暂时用不到的也建议收藏一下,因为文章持续更新中) 最新更改时间:20023-12-10 第一次做App应用开发相信大家一定都遇到过华为应用市场审核的“驳回”! 有些问题一看就明白可以立马修改,而有一些问题修改意…...

c#编码技巧(十五):新语法糖record深入分析
c#编码技巧(十四):新语法糖record深入分析 从 C# 9 开始新增了一个关键字record,用于封装数据。 record实质是微软提供的一个语法糖,因很多开源项目都用到了这个关键字,说明这个语法糖比较实用。 那么这个record类型和普通class类…...

Java IO流(五)(字符集基础知识简介)
字符集 计算机的存储规则(英文字符) 常见字符集介绍 a.GB2312字符集:1980年发布,1981年5月1日实施的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个简体汉字 b.BIG5字符集:台湾地区繁体中…...

周周爱学习之Redis重点总结
redis重点总结 在正常的业务流程中,用户发送请求,然后到缓存中查询数据。如果缓存中不存在数据的话,就会去数据库查询数据。数据库中有的话,就会更新缓存然后返回数据,数据库中也没有的话就会给用户返回一个空。 1.缓…...

免费的SEO外链发布工具,提升排名的利器
互联网已经成为信息传播和商业发展的重要平台。而对于拥有网站的个人、企业来说,如何让自己的网站在搜索引擎中脱颖而出?SEO(Search Engine Optimization)作为提高网站在搜索引擎中排名的关键手段. 什么是SEO外链? S…...

腾讯字节常考的linux命令
1 ps 1.1 ps -ef 有哪些字段 ps -ef 命令在Unix/Linux系统中用于显示当前运行的进程。输出的字段通常包括: UID:启动进程的用户ID。PID:进程ID。PPID:父进程ID。C:CPU利用率。STIME:进程启动时间。TTY&a…...

JAVA后端自学技能实操合集
JAVA后端自学技能实操 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习FastDFS使用docker安装FastDFS(linux)集成到springboot项目中 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习 FastDFS 组名:文件上传后所在的 st…...

C++ 关联容器
关联容器 关联容器支持高效的关键字查找和访问。 两个主要的关联容器(associative container)类型是 map 和 set。 map 中的元素是一些关键字——值对。 关键字起到索引的作用,值则表示与索引相关联的数据。 set 中的每个元素只包含一个关键…...

ES6之函数新增的扩展
参数 ES6允许为函数的参数设置默认值 function log(x, y World) {console.log(x, y); }console.log(Hello) // Hello World console.log(Hello, China) // Hello China console.log(Hello, ) // Hello函数的形参是默认声明的,不能使用let或const再次声明 functi…...

postgresql安装部署(docker版本)
1.在线部署 创建数据库存储目录 mkdir /home/pgdata创建容器 docker run --name postgresql --restartalways -d -p 5432:5432 -v /home/pgdata:/var/lib/postgresql/data --shm-size10g -e POSTGRES_PASSWORD密码 postgis/postgis:12-3.2-alpine–name为设置容器名称 -d表…...

【Python/Java/C++三种语言】20天拿下华为OD笔试之【位运算】2023B-出错的或电路【欧弟算法】全网注释最详细分类最全的华为OD真题
文章目录 题目描述与示例题目描述输入描述输出描述示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 某生产门电路的厂商发现某一批次的或门电路不稳定,具体现象为计…...

vscode 编译运行c++ 记录
一、打开文件夹,新建或打开一个cpp文件 二、ctrl shift p 进入 c/c配置 进行 IntelliSense 配置。主要是选择编译器、 c标准, 设置头文件路径等,配置好后会生成 c_cpp_properties.json; 二、编译运行: 1、选中ma…...