Bootstrap

【华为OD机考 统一考试机试C卷】 环中最长子串/字符成环找偶数O(C语言)

(C语言)华为OD机考:统一考试 C卷 + D卷 + B卷 +A卷

目前在考C卷,经过两个月的收集整理,C卷真题已整理完毕
抽到原题的概率为2/3到3/3,也就是最少抽到两道原题。请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。

真题目录:【C语言题解版】华为 OD 机试 C卷抽中题库清单(全真题库)含考点说明
专栏:(C语言)最新华为OD机试C卷+D卷+AB卷

注意

本题2022年考过

题目描述

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

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

输入描述

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

备注

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

输出描述

输出是一个整数

示例1

输入

alolobo

输出

6

说明:
最长子字符串之一是 “alolob”,它包含’o’ 2个。

示例2

输入

looxdolx

输出

7

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

示例3

输入

bcbcbc

输出

6

说明:
这个示例中,字符串 “bcbcbc” 本身就是最长的,因为 ‘o’ 都出现了 0 次。

解题思路

这段Java代码的核心解题思路主要包括以下几个步骤:

  1. 读取用户输入:首先,代码创建了一个Scanner对象,用于读取用户输入的字符串。
  2. 获取字符串长度:代码获取了字符数组的长度,这个长度值在后续的输出中会用到。
  3. 统计’o’字符的数量: 遍历字符数组,每遇到一个’o’字符,就将计数器加1࿰
;