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

该博客主要介绍了如何解决华为在线开发者(OD)机试中的一道问题,即寻找一个环形字符串中出现偶数次的'o'字符形成的最长子字符串的长度。解题思路包括统计'o'字符数量,根据数量的奇偶性判断最长子串长度。给出的示例字符串为'alolobo',最长子串长度为6。
订阅专栏 解锁全文
5770

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



