当前位置:   article > 正文

华为OD机试统一考试D卷C卷 - 最长子字符串的长度(二)(C++ Java JavaScript Python C语言)_最长字符串2 od

最长字符串2 od

华为OD机考:OD统一考试D卷+C卷+A卷+B卷+刷题OJ

真题目录:华为OD机考机试 真题目录( D卷 +C卷 + B卷 + A卷) + 考点说明
在线OJ:点击立即刷题,模拟真实机考环境
华为OD面试真题精选:华为OD面试真题精选

题目描述

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

输入描述

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

1 <= s.length <= 5 x 10^5

s 只包含小写英文字母。

输出描述

输出是一个整数

用例1

输入

alolobo
  • 1

输出

6
  • 1

说明:最长子字符串之一是 “alolob”,它包含 ‘l’,'o’各 2 个,以及 0 个 ‘x’ 。

用例2

输入

looxdolx
  • 1

输出

7
  • 1

说明

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

用例3

输入

bcbcbc
  • 1

输出

6
  • 1

说明

字符串 “bcbcbc” 本身就是最长的,因为 ‘l’、‘o’、‘x’ 都出现了 0 次。

解题思路

思路解析

  1. 外层循环

    • 从字符串的每个字符开始,遍历整个字符串。这个循环的目的是以每个字符作为子字符串的起始点。
  2. 内层循环

    • 从外层循环指定的起始点开始,遍历字符串的其余部分。这个循环的目的是检查从当前起始点开始的所有可能的子字符串。
    • 对于每个可能的子字符串,计算字符 ‘l’、‘o’ 和 ‘x’ 的出现次数。
  3. 条件检查

    • 在内层循环中,检查当前子字符串中字符 ‘l’、‘o’ 和 ‘x’ 出现的次数是否都是偶数。
    • 如果都是偶数,则计算当前子字符串的长度,并更新 maxLength,如果它比当前的 maxLength 更大。
  4. 返回结果

    • 最后返回 maxLength,即满足条件的最长子字符串的长度。

输入用例 “looxdolx” 的模拟

  1. 初始化

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/786569
推荐阅读
相关标签
  

闽ICP备14008679号