题目
给你一个字符串 s,首尾相连成一个环形,请你在环中找出 ‘o’ 字符出现了偶数次最长子字符串的长度。
输入描述
输入是一个小写字母组成的字符串
输出描述
输出是一个整数
备注
1 ≤ s.length ≤ 500000
s 只包含小写英文字母
用例
输入 alolobo
输出 6
说明 最长子字符串之一是 “alolob”,它包含2个’o’
解题思路
1、统计字符串中 ‘o’ 的总个数。
2、如果 ‘o’ 的总个数是偶数,那么整个字符串就是满足条件的最长子字符串,直接返回字符串的长度。
3、如果 ‘o’ 的总个数是奇数,那么去掉一个 ‘o’ 后,剩余的部分就是满足条件的最长子字符串,返回字符串长度减一。
代码
#include <iostream>
#
华为机试:求环形字符串中偶数o的最长子串长度

该博客介绍了如何解决华为在线测试(OD)中的一道题目,即找到环形字符串中出现偶数次的'o'字符构成的最长子字符串长度。解题思路包括统计'o'的数量,根据奇偶性决定最长子串,并提供了相应的C++代码实现。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



