当前位置: 首页 > 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;}}

相关文章:

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

前言 工作了十几年&#xff0c;从普通的研发工程师一路成长为研发经理、研发总监。临近40岁&#xff0c;本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作&#xff0c;愁肠百结。为了让自己有点事情做&#xff0c;也算提高一下自己的编程能力…...

Selenium+Java(21):Jenkins发送邮件报错Not sent to the following valid addresses解决方案

问题现象 小月妹妹近期在做RobotFrameWork自动化测试,并且使用Jenkins发送测试邮件的时候,发现报错Not sent to the following valid addresses,明明各个配置项看起来都没有问题,但是一到邮件发送环节,就是发送不出去,而且还不提示太多有用的信息,急的妹妹脸都红了,于…...

JSON结构快捷转XML结构API集成指南

JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中&#xff0c;数据交换格式的选择对于系统的互操作性和效率至关重要。JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种广泛使用的数据表…...

【视觉惯性SLAM:四、相机成像模型】

相机成像模型介绍 相机成像模型是计算机视觉和图像处理中的核心内容&#xff0c;它描述了真实三维世界如何通过相机映射到二维图像平面。相机成像模型通常包括针孔相机的基本成像原理、数学模型&#xff0c;以及在实际应用中如何处理相机的各种畸变现象。 一、针孔相机成像原…...

网络编程:TCP和UDP通信基础

TCP 简易服务器&#xff1a; #include<myhead.h>int main(int argc, const char *argv[]) {int oldfd socket(AF_INET,SOCK_STREAM,0);if(oldfd -1){perror("socket");return -1;}//绑定要绑定的结构体struct sockaddr_in server {.sin_family AF_INET,.…...

声波配网原理及使用python简单的示例

将自定义的信息内容&#xff08;如Wi-Fi配置、数字数据&#xff09;转换为音波是一种音频调制与解调技术&#xff0c;广泛应用于声波配网、数据传输和近场通信中。这项技术的实现涉及将数字信息编码为音频信号&#xff0c;并通过解码还原信息。 实现方法 1. 数字数据编码 将原…...

深度学习任务中的 `ulimit` 设置优化指南

深度学习任务中的 ulimit 设置优化指南 1. 什么是 ulimit&#xff1f;2. 深度学习任务中的关键 ulimit 设置2.1 max locked memory&#xff08;-l&#xff09;2.2 open files&#xff08;-n&#xff09;2.3 core file size&#xff08;-c&#xff09;2.4 stack size&#xff08…...

【学生管理系统】权限管理

目录 6.4 权限管理&#xff08;菜单管理&#xff09; 6.4.1 查询所有&#xff08;含孩子&#xff09; 6.4.2 添加权限 6.4.3 核心3&#xff1a;查询登录用户的权限&#xff0c;并绘制菜单 6.4 权限管理&#xff08;菜单管理&#xff09; 6.4.1 查询所有&#xff08;含孩子…...

Java编程题_面向对象和常用API01_B级

Java编程题_面向对象和常用API01_B级 第1题 面向对象、异常、集合、IO 题干: 请编写程序&#xff0c;完成键盘录入学生信息&#xff0c;并计算总分将学生信息与总分一同写入文本文件 需求&#xff1a;键盘录入3个学生信息(姓名,语文成绩,数学成绩) 求出每个学生的总分 ,并…...

JUC并发工具---线程协作

信号量能被FixedThreadPool代替吗 Semaphore信号量 控制需要限制访问量的资源&#xff0c;没有获取到信号量的线程会被阻塞 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore;public class Sem…...

Excel for Finance 08 `XNPV`和`XIRR` 函数

Excel 的 XNPV 函数用于计算基于特定日期的净现值&#xff08;Net Present Value, NPV&#xff09;。与标准的 NPV 函数相比&#xff0c;XNPV 更灵活&#xff0c;可以考虑不规则的现金流间隔&#xff0c;而不仅限于等间隔的期数。 语法&#xff1a; XNPV(rate, values, dates)…...

嵌入式入门Day35

网络编程 Day2 套接字socket基于TCP通信的流程服务器端客户端TCP通信API 基于UDP通信的流程服务器端客户端 作业 套接字socket socket套接字本质是一个特殊的文件&#xff0c;在原始的Linux中&#xff0c;它和管道&#xff0c;消息队列&#xff0c;共享内存&#xff0c;信号等…...

AE/PR/达芬奇模板:自动光标打字机文字标题移动效果动画模板预设

适用于AE/PR/达芬奇的 Typewriter Pro 该模板包括专业的打字机文本动画&#xff0c;并包含很酷的功能&#xff0c;以及帮助文档和分步画外音视频教程。 主要特点 轻松的持续时间控制您可以通过在持续时间控件中输入 start 和 end duration&#xff08;开始和结束持续时间&…...

RCE漏洞

一、课程知识点 1、远程代码执行漏洞原理与利用 2、常见的代码执行函数 3、常见的命令执行函数 4、常见的绕过姿势 5、命令执行漏洞防范 二、技术目标 1、掌握命令执行漏洞的原理 2、掌握 PHP 命令执行和代码执行的相关函数 3、掌握常见的绕过姿势 4、掌握代码执行漏洞防御措施…...

在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题

00 两种可行方法分别是&#xff1a; 使用数组存储每一位数据并进行进位运算&#xff1a;通过将大数按位拆分成数组&#xff0c;然后实现逐位加法、进位等操作。使用符号变量进行计算&#xff1a;将数值分成低位和高位&#xff0c;分别用符号变量进行计算。 01&#xff1a;使用…...

【Compose multiplatform教程20】在应用程序中使用多平台资源

为项目设置资源后&#xff0c;生成项目以生成提供资源访问权限的特殊类。要重新生成类和所有资源访问器&#xff0c;请再次生成项目或在 IDE 中重新导入项目。ResRes 之后&#xff0c;您可以使用生成的类从您的代码或外部库访问配置的多平台资源。 自定义访问器类生成 您可以使…...

深入浅出:从入门到精通大模型Prompt、SFT、RAG、Infer、Deploy、Agent

阅读原文 渐入佳境 我们都知道&#xff0c;通过编写一个提示词&#xff08;prompt&#xff09;&#xff0c;我们可以引导大模型生成回答&#xff0c;从而开启愉快的人工智能对话&#xff0c;比如让模型介绍一下卡皮巴拉。上边简图描述了这个过程&#xff0c;我们拆成两部分 pr…...

紫光同创-盘古200pro+开发板

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 一、开发系统介绍 开发系统概述 MES2L676-200HP 开发板采用紫光同创 logos2 系列 FPGA&#xff0c;型号&#xff1a;…...

iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针

iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-CSDN博客 类型含义使用场景示例nil表示一个指向 Objective - C 对象的空指针。在 Objective - C 和 Swift&#xff08;与 Objective - C 交互时&#xff09;中用于表示对象不存在。当一个对象变量没有指向任何有效的对象实例…...

【优选算法】有效三角形的个数(双指针算法)

优质专栏&#xff1a;算法_云边有个稻草人的博客-CSDN博客 目录 【611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09;】 解法一&#xff1a; 解法二&#xff1a; 【611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09;】 解法一&#xff1a; 三层for…...

告别‘main分支被拒绝’:用VSCode内置Git图形界面轻松同步远程仓库更新

告别‘main分支被拒绝’&#xff1a;用VSCode内置Git图形界面轻松同步远程仓库更新 当你沉浸在VSCode中编写代码&#xff0c;点击那个熟悉的"推送"按钮时&#xff0c;突然弹出一个红色错误提示——! [rejected] main -> main (non-fast-forward)。这种场景对于依赖…...

CosyVoice多语言语音合成体验:支持中英日韩粤,一键生成

CosyVoice多语言语音合成体验&#xff1a;支持中英日韩粤&#xff0c;一键生成 1. 开篇&#xff1a;语音合成新体验 想象一下&#xff0c;你正在制作一个面向全球市场的产品宣传视频&#xff0c;需要中文、英文、日语、韩语和粤语五种语言的配音。传统方式需要找五位不同语种…...

前端国际化:别让你的应用只懂一种语言

前端国际化&#xff1a;别让你的应用只懂一种语言 毒舌时刻这应用写得跟方言似的&#xff0c;出了本地就没人懂。各位前端同行&#xff0c;咱们今天聊聊前端国际化。别告诉我你的应用还只有中文版本&#xff0c;那感觉就像在国际会议上只说方言——能说&#xff0c;但没人懂。 …...

OpenClaw+GLM-4.7-Flash:自动化会议纪要生成实践

OpenClawGLM-4.7-Flash&#xff1a;自动化会议纪要生成实践 1. 为什么需要自动化会议纪要 每周三下午的团队例会是我最头疼的时刻。作为技术负责人&#xff0c;我需要同时参与讨论、记录关键决策点、跟踪行动项&#xff0c;最后还要整理成文档发给全员。手忙脚乱的结果往往是…...

2026 年 IT 技术趋势深度复盘:别再追热点,真正落地的只有这 6 条

前言&#xff1a;上一篇我们聊了 2026 年 IT 行业全景趋势&#xff0c;很多粉丝留言&#xff1a;趋势太多看不过来&#xff0c;不知道该学什么、该放弃什么。这一篇更务实、更落地、更贴近一线开发与架构师视角 ——剔除泡沫&#xff0c;只讲真正会在 2026 年大规模落地的技术方…...

TouchGal Galgame社区完整指南:打造你的二次元游戏乐园

TouchGal Galgame社区完整指南&#xff1a;打造你的二次元游戏乐园 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专…...

「5 个 Markdown 文件 + 1 句提示词」让 AI 精准重构你的 React 组件 | 附完整模板

这个场景你一定经历过&#xff1a; 你给 ChatGPT/Claude 一个又臭又长的 React 组件&#xff0c;说&#xff1a;"帮我重构一下&#xff0c;让它更清晰。" 结果要么&#xff1a; 改错了交互逻辑&#xff0c;导致功能崩溃改变了接口契约&#xff0c;后端完全适配不了代…...

Dropout、DropConnect、Standout...12种正则化变种,到底该用哪个?一份给炼丹师的避坑指南

Dropout变种全景指南&#xff1a;从理论到实战的12种策略深度解析 当你的神经网络在验证集上表现不佳时&#xff0c;第一个跳入脑海的解决方案是什么&#xff1f;对于大多数从业者来说&#xff0c;Dropout无疑是正则化工具箱中的首选武器。但你是否知道&#xff0c;标准Dropout…...

从图片预览需求看H5监听浏览器返回事件的3种实现方案(含history API避坑指南)

从图片预览需求看H5监听浏览器返回事件的3种实现方案&#xff08;含history API避坑指南&#xff09; 在移动端H5开发中&#xff0c;图片预览功能几乎是标配需求。随着全面屏手势操作的普及&#xff0c;用户越来越习惯通过滑动返回退出预览&#xff0c;而非点击关闭按钮。这种交…...

Unity游戏模组加载效率提升指南:从零开始掌握MelonLoader

Unity游戏模组加载效率提升指南&#xff1a;从零开始掌握MelonLoader 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 一、问题引…...