当前位置: 首页 > news >正文

华为OD E卷(100分)39-最长子字符串的长度(二)

 前言

        工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人,也希望能和看到此文的大神们沟通交流,提升自己,更希望在此期间能够找到一份理想的工作。

题目描述

        给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出'l'、'o'、'x' 字符都恰好出现了偶数次最长子字符串的长度。

输入

        输入是一串小写的字母组成的字符串s。

  1. 1 <= s.length <= 5 x 10^5
  2. s 只包含小写英文字母。

输出

        输出是一个整数

示例 

示例1

输入
alolobo
输出

6

说明

最长子字符串之一是 "alolob",它包含 'l','o'各 2 个,以及 0 个 'x' 。

示例2

输入
looxdolx
输出

7

说明

最长子字符串是 "oxdolxl",由于是首尾连接在一起的,所以最后一个 'x' 和开头的 'l'是连接在一起的,此字符串包含 2 个'o' 。

示例3

输入
bcbcbc
输出

6

说明

这个示例中,字符串 "bcbcbc" 本身就是最长的,因为 'o' 都出现了 0 次。

解题思路

        循环,每一次将第一个字符放到最后组成一个新的字符串进行查找

题解

Java实现

package huawei.e100;import java.util.Scanner;/**
* @author arnold
* @date 2024年12月24日
* 最长子字符串的长度(二)
*/
public class T39_ZuiChangZiChuan {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {String str = sc.nextLine();int maxLen = run(str);System.out.println(maxLen);}}// 循环,每一次将第一个字符放到最后组成一个新的字符串进行查找static int run(String str) {int maxLen = getMaxLen(str);for (int i = 1; i < str.length(); i++) {str = str.substring(1) + str.substring(0,1);int len = getMaxLen(str);maxLen = Math.max(maxLen, len);}return maxLen;}static int getMaxLen(String s) {int maxLen = 0;int l_num = 0;int o_num = 0;int x_num = 0;for (int i = 0; i < s.length(); i++) {if(s.charAt(i) == 'l') {l_num++;} else if (s.charAt(i) == 'o') {o_num++;} else if (s.charAt(i) == 'x') {x_num++;}if(l_num % 2 == 0 && o_num % 2 == 0 && x_num % 2 == 0) {maxLen = Math.max(maxLen, i+1);}}return maxLen;}}

http://www.lryc.cn/news/511759.html

相关文章:

  • Selenium+Java(21):Jenkins发送邮件报错Not sent to the following valid addresses解决方案
  • JSON结构快捷转XML结构API集成指南
  • 【视觉惯性SLAM:四、相机成像模型】
  • 网络编程:TCP和UDP通信基础
  • 声波配网原理及使用python简单的示例
  • 深度学习任务中的 `ulimit` 设置优化指南
  • 【学生管理系统】权限管理
  • Java编程题_面向对象和常用API01_B级
  • JUC并发工具---线程协作
  • Excel for Finance 08 `XNPV`和`XIRR` 函数
  • 嵌入式入门Day35
  • AE/PR/达芬奇模板:自动光标打字机文字标题移动效果动画模板预设
  • RCE漏洞
  • 在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题
  • 【Compose multiplatform教程20】在应用程序中使用多平台资源
  • 深入浅出:从入门到精通大模型Prompt、SFT、RAG、Infer、Deploy、Agent
  • 紫光同创-盘古200pro+开发板
  • iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针
  • 【优选算法】有效三角形的个数(双指针算法)
  • 中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern)
  • 客户案例:基于慧集通打通聚水潭电商ERP与用友U8系统集成之路
  • 阿里云clb是什么
  • 【Cursor编辑器】自用经验和实操(迭代更新)
  • 【学习笔记】ChatGPT原理与应用开发——基础科普
  • 基于Web的实验中心工作管理网站的设计与实现
  • docker 安装minio
  • ubuntu下ipmi的使用(4028)
  • 周记-唐纳德的《计算机程序设计艺术》
  • 极品飞车6的快捷键与车辆等级
  • 计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统 医疗大数据 机器学习 深度学习 人工智能 爬虫 大数据毕业设计