华为OD机试之最长的指定瑕疵度的元音子串(Java源码)_最长的指定瑕疵度的元音子串 java

最后

一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。

这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。

image

请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

| — | — | — |
| 0asdbuiodevauufgh | 3 | uio为瑕疵度为0的最长子串,故长度为3 当然auu也是 |
| 2aeueo | 3 | 0 |

解析

该题考查正则表达式的使用。 其中一个隐含的点就是正则匹配时不能找出所有满足的子串。因此可以匹配到一个就把开始字符替换掉。这样能尽量多的找出满足条件的子串。

源码

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class T22 {
	public static void main(String[] args) {
		int flaw =1; // 瑕疵度
		String inputStr = "asdabbuiooodevauufghu"; // 匹配字符
		//开头是元音 结尾是元音 中间出现的非元音字符是瑕疵度
		String regex="";
		if(flaw==0){
			regex="[aeiouAEIOU]{1,}";
		}else{
			regex="[aeiouAEIOU]{1}";
			for(int i=0;i<flaw;i++){
				regex+="[^aeiouAEIOU]{1}[aeiouAEIOU]\*";
			}
			regex+="[aeiouAEIOU]{1}";
		}
		
		System.out.println(regex);
		System.out.println(inputStr.matches("[aeiou]{1}"));
// while(inputStr.contains("[aeiou]{1}"))
		Pattern pattern=Pattern.compile(regex);
		Matcher matcher=pattern.matcher(inputStr);
		int max=0;
		while(matcher.find()){
			System.out.println(inputStr.substring(matcher.start(), matcher.end()));
			if(matcher.end()-matcher.start()>max){
				max=matcher.end()-matcher.start();
			}
			StringBuilder sb=new StringBuilder(inputStr);
			sb.setCharAt(matcher.start(), '\_');//每次匹配到之后就把开始字符替换掉 可以一直往后匹配。
			inputStr=sb.toString();
			matcher=pattern.matcher(inputStr);
		}
		System.out.println("长度:"+max);
	}	
}


最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

**

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值